PHP-код медленно умирает не от фреймворка, а от невидимых границ
В коммерческом PHP главный источник боли — смешанные ответственности. Когда в одном методе живут HTTP, валидация, бизнес-решение, SQL и отправка события, тестировать уже нечего: остаётся молиться на happy path.
Минимальная схема, которая окупается даже в маленьком проекте:
— контроллер принимает запрос и отдаёт ответ;
— FormRequest/DTO нормализует вход;
— action/service принимает чистые данные;
— query object прячет сложный SELECT;
— событие или джоба уносит побочные эффекты.
Есть наблюдение которое стоит проверить: если метод нельзя вызвать из CLI или теста без Request, Auth и контейнерной магии — это не бизнес-логика, а обработчик веб-слоя. Такой код мешает переиспользованию в API, очередях и админке.
Не надо строить «энтерпрайз» ради формы на два поля. Но границы лучше вводить там, где есть деньги: создание лида, расчёт комиссии, смена статуса, биллинг, антифрод.
Хороший PHP-проект читается по направлению зависимостей: веб-слой снаружи, доменные решения внутри. Если это видно без открытия половины репозитория — команда уже сэкономила себе будущий рефакторинг.
Laravel & PHP Deep — фреймворки и пакеты
@laravel_php_deep
PHP-код медленно умирает не от фреймворка, а от невидимых границ
Этот пост опубликован в Telegram-канале Laravel & PHP Deep — фреймворки и пакеты. Подписаться можно по ссылке: @laravel_php_deep.