Задать вопрос

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

Существует PHP-PM, PHP-FPM, которые по сути распределяют процессы под каждый запрос, создавая всю инфраструктуру классов под каждый из них.

Есть ReactPHP, Swoole, которые работают асинхронно и могут с уже загруженными классами в памяти обрабатывать запросы. Почему бы не перейти полностью на асинхронщину , зачем поддерживать, то что работает медленнее?
  • Вопрос задан
  • 600 просмотров
Подписаться 3 Средний 4 комментария
Решения вопроса 2
@EvgeniiR
https://github.com/EvgeniiR
1. PHP умирает на каждый запрос. Это его главное преимущество и особенность. Это допускает очень много вещей, т.е можно не париться закрытием файлов, завершением подключения к БД и т.п. Как только вы захотите писать асинхронно вам про всё это нужно будет помнить.

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

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

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

Если кратко, то охотясь за асинхронностью php, вы должны мыслить асинхронно и писать свое приложение опираясь на этот факт. При этом вы не выигрываете баснословные секунды.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@procode
Разработчик
Пишите на Node, если вам так важна асинхронность, а PHP пожалуйста не трогайте - он и так хорош настолько, что на нем написан практически весь нынешний интернет. Нам этот коллбэчный ад не нужен в нашей ламповой секте :-)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы