«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Аноним 2021/12/22 18:25:27  №2245458 1
Расскажите что нужно изучить чтобы освоить тестирование?
Ответы: >>2245462 >>2245474 >>2246053
Аноним 2021/12/22 18:31:01  №2245462 2
>>2245458
Еще вопрос: есть ли возможность писать не как обычно когда скрипты на каждый запрос исполняются заново, а как на питоне когда есть рабочий цикл и он обрабатывает весь HTTP?
Ответы: >>2245467 >>2245555 >>2246053
Аноним 2021/12/22 18:49:45  №2245467 3
>>2245462
Можно. но в пхп это нетривиально и нераспространено. Роль аппликейшен сервера выполняет менеджер процессов php-fpm
Он создает пул php воркеров, принимает запрос через сокет и посылает на обработку воркеру. Если я не ошибаюсь пхп воркер не отрабатывает и умирает как в cgi, а работает между фазами инициализации php, в начальной фазе все данные в глобальных переменных стираются, очищается скоуп и тд и тп. Когда воркер сожрет слишком много памяти, php-fpm его гасит, и запускает новый процесс. Сейчас появляются новые менеджеры для пхп процессов. Например на голанге roadrunner, с ним пхп воркер способен сохранять свое состояние между запросами.
Аноним 2021/12/22 19:03:01  №2245471 4
>>2245467
мне хоть и нравится php, но вот это вот мне не нравится
это порождает выкрутасы для нормального роутинга и жрет ресурсы наверное больше чем могло бы


node js норм или слишком зумерская хуйня?
сам js неплохой язык, но вот хочу узнать как он в сравнении с php в реальном использовании
Аноним 2021/12/23 14:04:03  №2246061 5
>>2245467

Не надо вводить в заблуждение. Что значит "нетривиально"? В PHP есть сокеты, и более того, они могут работать в асинхронном режиме. Код получается такой же, как например, если бы его писали на Си.

>>2245471

> это порождает выкрутасы для нормального роутинга и жрет ресурсы наверное больше чем могло бы

Наоборот. Так как PHP очищает память после каждого запроса, это позволяет избегать утечек памяти. В то же время на других платформах (вроде Ноды, Го, Java, Питон, Руби) такой возможности нет и там очень часто происходят утечки памяти. Погугли и ты найдешь вопросы "у нас сервер на языке X постоянно потребляет память, что делать" и советы вроде прибивать его каждый час по крону. Вот так высокие технологии! У них нет ни инструментов для поиска утечек, ни средств борьбы с ними и все, что остается незадачливым разработчикам - лепить костыли.

Ответы: >>2246080
Аноним 2021/12/23 14:30:30  №2246080 6
>>2246061
Память на пхп нормально не очищается для cli скриптов
Пыху никто как питон скрипт не запускает, за исключением случаев использования асинхронных reactphp, amphp и т.д и там надо следить памятью костылями
Обычный режим работы пыхи через процесс менеджер типа fpm
Ответы: >>2246085 >>2246472
Аноним 2021/12/23 14:34:05  №2246085 7
>>2246080
Вспомнил распостраненный запуск пыхи в cli на проде - это очереди в ларке. Но это какой-то уровень сайта для чебуречной.
Аноним 2021/12/23 21:22:57  №2246472 8
>>2246080

> Память на пхп нормально не очищается для cli скриптов

Зачем ты вводишь в заблуждение. В PHP есть и подсчет ссылок, и сборка мусора. Ровно то же самое, что в Питоне и в Node.JS.

>>2246002

Чтобы разобраться, как работают асинхронные фреймворки вроде ReactPHP, тебе сначала надо почитать про сокеты (не вебсокеты, а сокеты Беркли), потом про асинхронные вызовы и poll/select, потом про промисы и дополнительно поковырять документацию или исходники ReactPHP или аналогичной библиотеки.

>>2246138

Лучше бы конечно DTO сделали как в Питоне dataclasses.

Ответы: >>2246581
Аноним 2021/12/24 05:37:25  №2246581 9
>>2246472
Зачем ты вводишь в заблуждение https://divinglaravel.com/avoiding-memory-leaks-when-running-laravel-queue-workers

Покеж пример уровня питоновской фляги на пхп или пример нодовского экспесса, где сел и поехал на аппликейшен сервере, а не лисапеды которые ты предлагаешь. Так то селект и епол везде можно вызывать, как и любое апи на сишке.
Ответы: >>2246677 >>2247029
Аноним 2021/12/24 08:28:27  №2246677 10
image.png (52, 1097x371)
371x1097
Ответы: >>2246757
Аноним 2021/12/24 10:39:05  №2246757 11
>>2246677
Ебало тимлида представили, когда мидл новый проект с таким кодом принесет, вместо круда на ларевеле. А когда эта хуйня начнет активно с орм работать и всю память в контейнере выжрет мидла ногами будут пинать или только обоссут?
Ответы: >>2246766 >>2246793
Аноним 2021/12/24 10:49:27  №2246766 12
>>2246757
На скрине обыкновенный код, который не вызовет удивления ни у мидла, ни у адекватного джуна.
Ответы: >>2246787
Аноним 2021/12/24 11:02:18  №2246787 13
>>2246766
Теоретик, спок. Я тебе написал причину почему твой код не будет работать в сложном приложении на пхп. Ты писал когда-нибудь долгоиграющие джоб воркеры на пхп? Предположим ты хочешь реквесты обрабатывать на манер экспресса и хранить какие-то данные в глобальном объекте для простоты. например статистику запросов. Тебе придется твой воркер перезапускать потому что пхп библиотеки не спроектированы для работы в CLI режиме. Глобальные данные придется сохранять и восстанавливать после перезапуска воркера. Короче костыли костылики
Ответы: >>2246790 >>2246813 >>2247043
Аноним 2021/12/24 11:05:52  №2246790 14
>>2246787
Любая пхп ормка насрет тебе столько в память, что ты будешь каждый час за ней прибирать
Ответы: >>2247043
Аноним 2021/12/24 11:12:01  №2246793 15
>>2246757
Представили ебало тупорылого пориджа, который кроме круда нихуя не видел в своей никчемной жизни? Никто в здравом уме и не будет тащить асинхронщину в обычное крудоподелие. А тот кто потащит будет знать, зачем ему это нужно и наверняка озаботится поиском асинхронного клиента для БД и борьбой с утечками памяти. И, кстати, пыха сама по себе давно уже не течет.
Ответы: >>2246805
Аноним 2021/12/24 11:29:32  №2246805 16
>>2246793
Так зачем оспаривать начали, что в пыхе менеджеры процессов используются как апп сервер, которые пыхины воркеры перезапускают, а работа в cli нетривиальная и нераспостраненная практика? Может не ты может другой анон, а ты влез без контекста.
Ответы: >>2246818 >>2247043
Аноним 2021/12/24 11:37:53  №2246813 17
>>2246787
А ты не пробовал писать воркеры, которые не протекают? Говорят, что это охуенная тема. А если не судьба, то периодическое прибитие воркеров и перезапуск их супервайзером с временным хранением данных в каком-нибудь редисе вполне себе нормальный подход, хоть и немного компромиссный. И уж точно не какой-то там невероятный костыль. Я кончил
Аноним 2021/12/24 11:41:11  №2246818 18
>>2246805
>>а работа в cli нетривиальная и нераспостраненная практика
Ну это ты загнул. Лично мне на всех моих работах приходилось лепить что-то консольное. От простых команд до любимых тобой воркеров, так что это точно не экзотика
Ответы: >>2246830 >>2246831
Аноним 2021/12/24 11:48:56  №2246830 19
>>2246818
Чел, контекст. Вопрос был: "Хачю кок в ноде", впрос не стоял можно ли запустить комманд на пхп. Как в ноде - экотика. Если пойти по этому пути, то придется долго докладывать Кобанычу, что ты все еще борешься с трудностями а не решаешь бизнес задачу.
Аноним 2021/12/24 11:49:21  №2246831 20
>>2246818
Чел, контекст. Вопрос был: "Хачю кок в ноде", впрос не стоял можно ли запустить комманд на пхп. Как в ноде - экотика. Если пойти по этому пути, то придется долго докладывать Кобанычу, что ты все еще борешься с трудностями а не решаешь бизнес задачу.
Ответы: >>2246833
Аноним 2021/12/24 11:50:43  №2246833 21
>>2246831
Уже экотика у меня от вас началась...
Аноним 2021/12/24 15:26:14  №2247029 22
>>2246581

Ты пишешь ерунду. Такие же утечки могут быть (и бывают) в приложении на Ноде или Питоне. Только в отличие от Ноды или Питона, в PHP у тебя есть выбор - отсутствие утечек и перезапуск скрипта на каждый запрос или более высокая производительность, но требующая более высокого качества кода.

Возможность есть, хочешь - пользуйся, не хочешь - не пользуйся. Тебе просто хочется что-нибудь плохое написать про PHP, но так как ты не разбираешься в предмете, то начинаешь придумывать субъективные причины уровня "мне цвет логотипа не нравится".

> пример нодовского экспесса, где сел и поехал

Раз уж мы перешли на субъективные оценки, то твой Express это детская игрушка в сравнении с тем же роутером в Симфони, который поддерживает и YAML-конфиги и аннотации в отличие от Express в котором ты руками каждый коллбек прописываешь.

Аналогично, популярные шаблонизаторы в JS тоже примитивные в сравнении с тем же Twig.
Ответы: >>2247180
Аноним 2021/12/24 15:33:55  №2247043 23
>>2246787

Ну и бред. Перечитай свой пост. Ты пишешь: если мы будем "хранить данные в глобальном объекте" в PHP, то память будет тратиться. Также, данные надо куда-то сохранять. Поэтому PHP якобы непригоден (?) для работы из CLI.

А что, в Питоне и JS это работает как-то по-другому? Данные можно хранить в памяти, и при этом память не тратится и магическим образом сама куда-то сохраняется?

Ты же пишешь ерунду полнейшую.

>>2246790

Неправда. Не скажу за любую ORM, но в той же Доктрине есть метод clear(), например. Успешно используется и ничего никуда не утекает.

>>2246805

Если ты неграмотный, то для тебя все, что сложнее чем нажать кнопку на экране, будет "нетривиальным".
Ответы: >>2247101 >>2247107
Аноним 2021/12/24 17:13:57  №2247101 24
>>2247043
Ты читаешь жопой. Я не сказал что память будет течь из-за того что ты данные глобально хранишь. Я сказал, что предположим у тебя есть причина использования php через cli. Ты хочешь сохранить данные между запросами. Из-за того, что библиотеки не приспособлены для таких условий, у тебя будет течь память и тебе придется перезагружать скрипт и сохранять свои глобальные данные вне скрипта, как это было при работе через cgi.
Ответы: >>2247232
Аноним 2021/12/24 17:23:19  №2247107 25
>>2247043
Ты сам пробовал писать на пхп скрипты, которые месяцы живут без перезапуска, при этом интенсивно ворочают данными?
Ответы: >>2247156
Аноним 2021/12/24 18:34:29  №2247156 26
>>2247107
Делал кучу постоянно работающих скриптов на пхп, но они работали как кронжобы с стейтом в дб. Крон от минуты, но можно много процессов пускать каждую минуту как раз.
Процесс, работающий месяцами это тупость, даже если он не течет. Мало ли что случится.
Ответы: >>2247164
Аноним 2021/12/24 18:41:51  №2247164 27
>>2247156
У nginx на проде часто перезапускается? Почему он такой тупой - не хочет пререзапускаться!
Ответы: >>2247173
Аноним 2021/12/24 18:49:42  №2247173 28
>>2247164
Воркеры постоянно тасуются, как и следует. Что там делает мастер я хз, но соменваюсь, что он годами висит без перезапуска.
Ответы: >>2247175
Аноним 2021/12/24 18:51:25  №2247175 29
>>2247173
Ты нжинкс с апачем не путай. Нжинкс как нода на ивентлупе работает.
Ответы: >>2247181
Аноним 2021/12/24 18:57:24  №2247180 30
>>2247029
>и YAML-конфиги и аннотации
Хотя если быть правдивым давно пора от них отказаться и переходить на атрибуты, ямли это очень старый подход к роутингу или как описание для сущностей, аннотации чуть моложе, но всё равно костыль какой то.

>>2247137
>Хочу опыта больше иметь с разными технологиями.
>нода
ПХП макаки ничего сложнее жабаскрипта или пэхапе не в состоянии обуздать? Нахуя нам после пыхи Шарп В решётку вообще на изи перекатиться т.к пыха много ООП плюшек переняла у джавы как и шарп, ГО, раст или же любой ЯП со строгой типизацией?! Неее мы не хотим расти как погремисты, всё что мы хотим это писать говнокод не понимаючи как он работает...
Ответы: >>2247195 >>2247232
Аноним 2021/12/24 18:59:08  №2247181 31
>>2247175
Т.е. у нжинкса один процесс, который всё делает? Это что-то новенькое.
Ответы: >>2247188
Аноним 2021/12/24 19:07:51  №2247188 32
>>2247181
Мастер процесс постоянно живет, я выиграл
Ответы: >>2247189
Аноним 2021/12/24 19:09:27  №2247189 33
>>2247188
Мне просто лень искать про его перезапуски, гуляй пока.
Аноним 2021/12/24 19:16:06  №2247195 34
>>2247180
>ничего сложнее жабаскрипта или пэхапе не в состоянии обуздать?
Что необходимо по работе - то и изучается. Никому в голову не придёт дрочить левый язык на выходных радо того, чтобы тебе что-то там доказать, мань.
Пыха вообще язык не для дроча и показухи всем - кокой ты у мамы погроммист, а для работы. И остальные подходы дальше такие же идут.
Аноним 2021/12/24 20:09:04  №2247232 35
>>2247101

Вот, ты уже вместо "php не приспособлен" пишешь "библиотеки не приспособлены". Давай уточнять дальше - не все библиотеки не приспособлены, а какие-то отдельные. Мог бы сразу писать какие именно, а не ходить вокруг да около.

Опять же, нет гарантий что в Питоне или Ноде не окажется такой же проблемной библиотеки. И, кстати, если библиотеки опенсурсные, то можно просто исправить их.

>>2247180

YAML имеет тот плюс, что ты можешь просмотреть все роуты в одном месте и увидеть какие-то конфликты, что с аннотациями затруднено.

Ответы: >>2249887
Аноним 2021/12/27 19:34:04  №2249887 36
>>2247232
>что с аннотациями затруднено.
кем блять затруднено? debug:route для кого зделоли?