<b>PHP ломается не там, где синтаксис, а где типы и границы входных данных</b>
В реальных проектах большинство багов в PHP сидят в одном из трёх мест: вход пришёл не того типа, строка внезапно пустая, массив оказался ассоциативным вместо списка. Самый дешёвый способ ловить это — не доверять данным из request, env, queue payload и внешних API по умолчанию.
Минимальный чек-лист:
— включайте strict_types там, где это не ломает легаси;
— валидируйте форму данных до бизнес-логики;
— не смешивайте “null значит нет значения” и “пустая строка значит пусто”;
— для массивов проверяйте не только наличие ключа, но и ожидаемую структуру;
— на границе домена приводите типы явно, а не через неявные касты.
Отдельная ловушка — array functions и сравнения. В PHP "0", 0, false и "" легко начинают жить одной жизнью, если использовать loose comparison. Для фильтров, флагов и идентификаторов это источник тихих ошибок, которые тесты часто не ловят с первого прохода.
Если нужно одно правило на каждый проект: данные можно принять как угодно, но внутрь домена они должны попасть уже нормализованными. Тогда PHP перестаёт удивлять в проде и начинает вести себя предсказуемо.
Laravel & PHP Deep — фреймворки и пакеты
@laravel_php_deep
<b>PHP ломается не там, где синтаксис, а где типы и границы входных данных</b>
Этот пост опубликован в Telegram-канале Laravel & PHP Deep — фреймворки и пакеты. Подписаться можно по ссылке: @laravel_php_deep.