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

<b>5 мест в Laravel, где тихо теряется производительность и растёт техдолг</b>

<b>5 мест в Laravel, где тихо теряется производительность и растёт техдолг</b>

Есть наблюдение которое стоит проверить: в Laravel обычно «тормозит» не один большой кусок, а связка мелких решений.

— N+1 в отношениях. Если в списке моделей тянете связи внутри цикла, база платит за каждый элемент отдельно. Решение почти всегда одно: заранее грузить нужное через <code>with()</code> и не надеяться на магию.

— Лишняя логика в контроллере. Когда там и валидация, и маппинг, и запросы, и форматирование ответа, код начинает расползаться. Выносите правила в Form Request, а бизнес-логику — в сервисы или action-классы.

— Тяжёлые коллекции вместо запросов. Частая ошибка — сначала забрать всё, потом фильтровать и считать в PHP. Если условие можно выразить в SQL, пусть его выполнит база.

— Слепое использование событий и observers. Удобно, пока не появляется цепочка скрытых сайд-эффектов. Для критичных операций лучше держать явный вызов и понятный порядок действий.

— Отсутствие границ у пакетов и helpers. Когда любой модуль начинает дергать любой другой напрямую, тестировать это становится больно. Лучше сразу задавать слой API между частями проекта.

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

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

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

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