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

PHP в проде ломается не из-за синтаксиса, а из-за трёх тихих привычек

PHP в проде ломается не из-за синтаксиса, а из-за трёх тихих привычек

Первая — смешивать доменную ошибку и исключение среды. «Нет товара» и «Redis недоступен» не должны лететь одним Exception до контроллера. Для бизнес-веток используйте явный результат/DTO, для аварий — исключения, которые логируются и будят мониторинг.

Вторая — надеяться на типы, но оставлять края без валидации. Request, env, JSON из очереди, webhook и CSV — это грязная зона. Приводите данные в value object на входе, а не размазывайте is_string и null coalesce по сервисам.

Третья — писать код так, будто процесс умирает после запроса. В воркерах, очередях, Octane и CLI-сервисах живут статические кэши, singletons, соединения и «временные» массивы. Любое состояние должно иметь понятный reset или TTL.

Мини-чек: строгие типы в новых файлах; деньги и проценты не хранятся во float; дата всегда с timezone; внешние API имеют timeout; ретраи не повторяют неидемпотентные операции.

Хороший PHP-код скучный: вход очищен, состояние ограничено, ошибка названа своим именем. Всё остальное потом дорого искать в логах.
Этот пост опубликован в Telegram-канале Laravel & PHP Deep — фреймворки и пакеты. Подписаться можно по ссылке: @laravel_php_deep.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

start

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

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

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