Вступить в клуб →
средняявопросLegacy-код, SOLID и статический анализ

Включили declare(strict_types=1) во всех файлах, и в проде посыпались TypeError

В legacy-проекте одним коммитом добавили declare(strict_types=1) во все 2 000 файлов. Тесты покрывают 20% кода. После релиза в проде посыпались TypeError: строки из запросов и базы передавались в функции с типом int, и раньше PHP приводил их сам.

Как стоило включать строгую типизацию?

  • Постепенно по модулям, с анализатором и тестами
  • Не включать strict_types в legacy никогда
  • Включить сразу, но ловить TypeError глобально
  • Убрать все типы из сигнатур функций

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела