7 мест в Laravel, где тихо рождаются баги, хотя код выглядит «нормально»
Чаще всего проект ломается не в роуте и не в контроллере. Проблемные зоны: - неявные приведения типов в моделях и запросах; - accessors/mutators, которые меняют данные раньше, чем вы заметили; - массовое заполнение без явного $fillable; - очереди, где job получает уже не тот payload, что был на входе.
Отдельно проверяйте точки, где Laravel помогает слишком сильно: route model binding, implicit eager loading, автоматическая сериализация отношений. Удобство здесь же скрывает расхождения между ожидаемым и фактическим состоянием объекта. Если данные проходят через несколько слоёв, полезно фиксировать контракт на входе и выходе, а не надеяться на магию фреймворка.
Вторая зона риска — тесты, которые покрывают happy path, но не ловят пустые значения, null и дубли. Именно там потом всплывают исключения в проде. Для критичных сценариев держите рядом feature-тест и один unit-тест на преобразование данных.
Если в проекте есть «странные» баги, сначала ищите не в бизнес-логике, а в том, как Laravel преобразует данные между слоями.
Laravel & PHP Deep — фреймворки и пакеты
@laravel_php_deep
7 мест в Laravel, где тихо рождаются баги, хотя код выглядит «нормально»
Этот пост опубликован в Telegram-канале Laravel & PHP Deep — фреймворки и пакеты. Подписаться можно по ссылке: @laravel_php_deep.