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

<b>Octane ускоряет Laravel, но ломается там, где код писали под «каждый запрос заново»</b>

<b>Octane ускоряет Laravel, но ломается там, где код писали под «каждый запрос заново»</b>

Главная ловушка — состояние. Всё, что живёт в singleton, статике, глобальном helper-кэше или замыкании контейнера, может пережить запрос и утащить за собой старые данные. Проверяйте сервисы на утечки: не храните user context, tenant, request, locale и connection state дольше одного цикла.

Вторая зона риска — фасады, события и сторонние пакеты. Если пакет внутри держит mutable-объект или полагается на сброс локального кэша между запросами, под Octane он начинает «плавать». Отдельно смотрите на очереди, транзакции и авторизацию: после warm-up они должны работать так же, как в обычном PHP-FPM.

Практика простая: убирайте состояние в request-scoped объекты, очищайте кеши в terminate/hook, не используйте static для бизнес-логики и прогоняйте нагрузочный сценарий с повторяющимися пользователями, а не только с «пустыми» запросами. Если баг исчезает после перезапуска воркера — это почти всегда намёк на утечку состояния.

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

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

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

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