7 причин, почему Laravel-проект начинает тормозить даже без роста нагрузки
Чаще всего проблема не в самом фреймворке, а в том, как собран код вокруг него. Laravel хорошо терпит хаос до момента, когда каждый запрос начинает тащить лишнее: сервисы, события, отношения, мутаторы и тяжелые коллекции.
Что проверять в первую очередь:
— N+1 на рендерах и в API, особенно там, где eager loading забыли в одном месте;
— тяжелые middleware и глобальные scope, которые срабатывают на каждый запрос;
— запросы в циклах, скрытые в accessors, observers и Resource-классах;
— очереди и кеш: если их нет, часть работы молча уезжает в HTTP-слой.
Отдельно смотрите на контейнер и сервис-провайдеры. Когда в них много логики, старт приложения дорожает еще до того, как контроллер начал работу. Тот же эффект дают слишком жирные модели: чем больше поведения внутри Eloquent, тем сложнее предсказать стоимость обычного read-only запроса.
Хороший тест на здоровье проекта простой: открыть медленный экран, снять SQL-профиль и понять, где код делает лишнюю работу повторно. Если ответ находится только через дебаггер и догадки, архитектура уже просит рефакторинг.
Лучшая привычка для Laravel-проекта — считать не строки кода, а количество лишних действий на один запрос.
Laravel & PHP Deep — фреймворки и пакеты
@laravel_php_deep
7 причин, почему Laravel-проект начинает тормозить даже без роста нагрузки
Этот пост опубликован в Telegram-канале Laravel & PHP Deep — фреймворки и пакеты. Подписаться можно по ссылке: @laravel_php_deep.