Laravel & PHP Deep — фреймворки и пакеты

Octane ускоряет Laravel, но ломает привычку «запрос умер — память умерла»

Octane ускоряет Laravel, но ломает привычку «запрос умер — память умерла»

Octane держит приложение в памяти между запросами, поэтому код начинает жить дольше, чем вы привыкли в классическом PHP-FPM. Отсюда главный риск: любой объект, singleton, статический кэш или замыкание может протечь в следующий запрос.

Проверяйте перед включением:
— нет ли хранения Request, Auth, tenant или пользователя в свойствах сервиса;
— не мутируется ли конфиг, локаль, timezone и другие глобальные состояния;
— не копится ли в статике временный массив, результат выборки или коллекция;
— не завязан ли код на «инициализируется один раз и потом забылось».

Отдельно смотрите на пакеты: часть из них писалась под короткоживущий процесс и не умеет корректно очищать состояние. Если библиотека использует singletons, очереди в памяти, кэшированные резолвы контейнера или события без сброса, под Octane это всплывает быстро.

Хорошая практика простая: делайте сервисы максимально stateless, всё пользовательское передавайте аргументами, а после запроса сбрасывайте то, что может пережить lifecycle. Тогда Octane даёт прирост без загадочных багов, которые появляются только у второго посетителя.
Этот пост опубликован в Telegram-канале Laravel & PHP Deep — фреймворки и пакеты. Подписаться можно по ссылке: @laravel_php_deep.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @AFFtop_connect. Быстрый тест: $20 за канал, $1000 за пакет по сети.