Тип подсказок является предметом споров в нашей компании (в основном это нравится людям на Java), и я очень программист PHP старой школы (и программирую на других языках).
Мой совет - избегать подсказок типа и включать обработчики try / catch в каждую сложную функцию.
Тип подсказки заставляет приложение полагаться на среду обработки исключений вызывающей стороны, которая в общем плохая и остается непроверенной, что является основной проблемой. Для веб-приложений это приводит к «белому экрану смерти», а для пакета это приводит к просто фатальному выходу без регистрации хороших сообщений в большинстве случаев, и вы сидите, покачиваете голову, пытаясь воссоздать проблему пользователя или приложения, которая лежит на вашем управлении. вернуться к решению.
Локальная обработка исключений обеспечивает более контролируемый сценарий тестирования, включая мусор в типах данных и мусор в значениях данных, что дает гораздо более полный набор тестов по сравнению с трудным для тестирования путем обработки исключений в вызывающей стороне, передавая неверный тип и ожидая исключения.
Тестирование исключений также во многих случаях дает сбой из-за проблем версий стека (т. Е. Некоторые версии PHP, такие как 5.4, не отлавливают «подхватывающие фатальные» ошибки надлежащим образом, а ergo phpunit просто умирает, нарушая комплекты тестирования. Это зависит от стека) Однако, по моему опыту, подсказки по типу просто не нужны, заставляют людей, привыкших к типизированному языку, лучше воспринимать PHP, не осознавая последствий, и приводят к гораздо более сложным сценариям тестирования (очень сложно тестировать вызывающих, обрабатывающих результаты пути исключения).
Java и другие типизированные пользователи языка не принимают или не понимают, как использовать и использовать параметры по умолчанию смешанного типа в PHP ...
Они будут учиться когда-нибудь, но только если они пойдут по пути PHP. ;-)
Лучшие уроки извлекаются при разработке надежных сценариев тестирования на основе модулей PHP, и это, как правило, проливает свет на то, почему подсказки по типу являются проблемой в тестировании и вызывают гораздо больше проблем, чем пользы ... Каждому свое и мои приложения работают лучше и надежнее, а тестирование получается гораздо более полным, как правило, со 100% покрытием кода, включая пути перехвата в локальных функциях.