169 похожих чатов

Вопрос по асинхронному программированию в php: когда я запускаю своё

совсем обычное Laravel/Symfony приложение под swoole или RoadRunner или ReactPHP - становится ли моё приложение «асинхронным»? В моём Laravel/Symfony коде нет ни коллбэков, ни промисов (которые обычно есть в асинхронных программах). А что происходит с традиционно блокирующими вызовами ввода-вывода при работе под swoole или RoadRunner - они все как-то подменяются на неблокирующие, благодаря чему event loop в swoole/RoadRunner может крутиться?

3 ответов

15 просмотров

нет, не становится

я явно никогда не допишу свою статью... вот кусочек: Важное уточнение: В сети гуляет множество примеров из серии «берём ReacPHP и ускоряем Laravel в N раз». Важно понимать разницу между демонизацией приложения (и, как следствие, экономии времени на бутстрапинге приложения) и реальной многозадачностью. В случае, если вам надо просто убрать накладные расходы на запуск приложения, то не надо брать Swoole и пытаться впихнуть невпихуемое. Для этих целей есть специальные проекты, например, RoadRunner. После подключения которого ваше приложение не начнёт работать асинхронно. Вы лишь уберёте накладные расходы на поднятие приложения. Если вы хотите писать cuncurrency код, придётся запастись терпением и изменить ряд привычек. Вы не сможете больше пользоваться большинством привычных библиотек, которые для работы используют какие-либо блокирующие вызовы (echo, curl, pdo, mysqli, file, etc). в свуле можно при некоторой сноровке юзать блокирующие штуки, но цена тоже не самая дешёвая.

Посмотри как минимум жизненный цикл laravel/symfony, если не смотрел сорцы. Никакого буста у этих фреймов не будет, если вручную не переписать (тогда будет, но мало)

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта