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