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

<b>PHP ломается не там, где синтаксис, а где типы и границы входных данных</b>

<b>PHP ломается не там, где синтаксис, а где типы и границы входных данных</b>

В реальных проектах большинство багов в PHP сидят в одном из трёх мест: вход пришёл не того типа, строка внезапно пустая, массив оказался ассоциативным вместо списка. Самый дешёвый способ ловить это — не доверять данным из request, env, queue payload и внешних API по умолчанию.

Минимальный чек-лист:
— включайте strict_types там, где это не ломает легаси;
— валидируйте форму данных до бизнес-логики;
— не смешивайте “null значит нет значения” и “пустая строка значит пусто”;
— для массивов проверяйте не только наличие ключа, но и ожидаемую структуру;
— на границе домена приводите типы явно, а не через неявные касты.

Отдельная ловушка — array functions и сравнения. В PHP "0", 0, false и "" легко начинают жить одной жизнью, если использовать loose comparison. Для фильтров, флагов и идентификаторов это источник тихих ошибок, которые тесты часто не ловят с первого прохода.

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

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

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

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