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

PHP ломается не в синтаксисе, а в мелочах: 7 мест, где прячется баг

PHP ломается не в синтаксисе, а в мелочах: 7 мест, где прячется баг

За неделю в репах я бы первым делом проверял не «сложную архитектуру», а простые провалы: типы, границы, null, таймзоны, массивы, сравнения, побочные эффекты.

— == вместо ===: строка "0" и число 0 ведут себя слишком дружелюбно.
— Неявные приведения: null, пустая строка и 0 валиваются в одну корзину, если не поставить явную проверку.
— Мутируемые массивы и объекты: передали ссылку в сервис — и получили изменение не там, где ожидали.

Отдельно смотрите на даты и строки из внешних систем. Парсинг «как-нибудь» почти всегда кончается багом на границе суток или в другом часовом поясе. Если вход не гарантирован, нормализуйте его сразу: формат, таймзона, тип, допустимый диапазон.

Второй слой — side effects. Метод должен либо считать, либо менять состояние, но не делать всё сразу. Когда в одном месте и валидация, и запись, и отправка события, и преобразование данных, тесты начинают врать, а баги — прятаться в соседнем вызове.

Лучший чек перед merge простой: включить строгие сравнения, явно обработать null и даты, а все эффекты вынести за границу функции. Там, где код «почти работает», PHP обычно и оставляет сюрприз.
Этот пост опубликован в Telegram-канале Laravel & PHP Deep — фреймворки и пакеты. Подписаться можно по ссылке: @laravel_php_deep.
tech

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

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

@server_setup_guide_arb · 18 SeptemberSeptember9
SPF и DKIM ломают доставку чаще, чем контент письма Если рассылка уходит в спам или режется на приёме, сначала проверяйте DNS, а не шаблон п...
@topical_map_factory_ubt · 18 SeptemberSeptember9
Ошибки URL-архитектуры, из-за которых новый сайт не взлетает в выдаче Новый сайт часто проигрывает не из-за контента, а из-за кривой адресно...
@cloudflare_optimization_pro_arb · 18 SeptemberSeptember9
Почему DDoS и WAF нельзя настраивать как два отдельных “щитка” Защита от DDoS и управление WAF-политиками должны работать как одна система....
@tracker_stack_ubt · 18 SeptemberSeptember9
FB CAPI ломается не на отправке, а на потере идентификаторов и дублях Архитектура должна быть простой: источник события → ваш сервер → CAPI-...
@email_delivery_labs_arb · 18 SeptemberSeptember9
Как масштабировать рассылки без потери репутации домена и попадания в спам Масштабирование в email — это расширение инфраструктуры, а не про...
start

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

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

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