• Почему бы не сделать PHP полностью асинхронным?

    @EvgeniiR
    https://github.com/EvgeniiR
    1. PHP умирает на каждый запрос. Это его главное преимущество и особенность. Это допускает очень много вещей, т.е можно не париться закрытием файлов, завершением подключения к БД и т.п. Как только вы захотите писать асинхронно вам про всё это нужно будет помнить.

    2. Итак, плавно переходим к тому что помнить, вобщем то, нужно будет не только вам. 99% всех библиотек/фреймворков etc. для PHP не пригодны к работе асинхронно.

    3. "полностью асинхронным" = отсутствие блокировок? Первое на чем вы споткнетесь - банальные запросы к базе. С дефолтным драйвером они идут синхронно. Точно так же как синхронно работает куча других подключений, и всякие Swoole etc. вынуждены писать над всем этим свои обертки и свои драйвера к БД.

    Вобщем, асинк в PHP это огромное усложнение на пустом месте, и при наличии блокирующих операций не имеет никакого смысла. Сильно проще сменить язык программирования, если вам нужна асинхронщина.
    По описанию вашего вопроса - гляньте RoadRunner, интересная штука. Как раз чтобы сократить оверхед на инициализацию.
    Есть ещё всякие штуки аля https://github.com/php-service-bus/service-bus , но повторюсь, проще подходящий ЯП взять.
    Ответ написан
    6 комментариев
  • Почему бы не сделать PHP полностью асинхронным?

    kawabanga
    @kawabanga
    Вот буквально вчера слушал, советую к ознакомлению
    https://5minphp.ru/episode49/

    Если кратко, то охотясь за асинхронностью php, вы должны мыслить асинхронно и писать свое приложение опираясь на этот факт. При этом вы не выигрываете баснословные секунды.
    Ответ написан
    1 комментарий