Octane ускоряет Laravel, но ломает привычку «запрос умер — память умерла»
Octane держит приложение в памяти между запросами, поэтому код начинает жить дольше, чем вы привыкли в классическом PHP-FPM. Отсюда главный риск: любой объект, singleton, статический кэш или замыкание может протечь в следующий запрос.
Проверяйте перед включением:
— нет ли хранения Request, Auth, tenant или пользователя в свойствах сервиса;
— не мутируется ли конфиг, локаль, timezone и другие глобальные состояния;
— не копится ли в статике временный массив, результат выборки или коллекция;
— не завязан ли код на «инициализируется один раз и потом забылось».
Отдельно смотрите на пакеты: часть из них писалась под короткоживущий процесс и не умеет корректно очищать состояние. Если библиотека использует singletons, очереди в памяти, кэшированные резолвы контейнера или события без сброса, под Octane это всплывает быстро.
Хорошая практика простая: делайте сервисы максимально stateless, всё пользовательское передавайте аргументами, а после запроса сбрасывайте то, что может пережить lifecycle. Тогда Octane даёт прирост без загадочных багов, которые появляются только у второго посетителя.
Laravel & PHP Deep — фреймворки и пакеты
@laravel_php_deep
Octane ускоряет Laravel, но ломает привычку «запрос умер — память умерла»
Этот пост опубликован в Telegram-канале Laravel & PHP Deep — фреймворки и пакеты. Подписаться можно по ссылке: @laravel_php_deep.