Недавно обнаружил, что в проекте конструкции вида:
try {
// Пример ошибки, которая в php 7.2 вызовет ошибку уровня E_WARNING
$c = \count(null);
} catch (\RuntimeException $e) {
// Сработает на E_WARNING: Warning: count(): Parameter must be an array or an object that implements Countable
}
стали реагировать на предупреждения E_WARNING. Что этому предшествовало: некоторое время назад была "поднята" версия php до
PHP 7.2.7 (cli) (built: Jul 3 2018 02:04:37) ( NTS MSVC15 (Visual C++ 2017) x64 )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Xdebug v2.7.0alpha2-dev, Copyright (c) 2002-2018, by Derick Rethans
with Zend OPcache v7.2.7, Copyright (c) 1999-2018, by Zend Technologies
в ini
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_WARNING
и была "поднята" версия symfony до 4.1.0
Это новая фича php или где-то в symfony дополнительный хендлер, который я не нашел?
Это все же Symfony. В dev среде создается хендлер обработки ошибок, в котором все ошибки превращаются в фатальные
if (!$exception instanceof \Exception) {
$exception = new FatalThrowableError($exception);
}
поэтому и срабатывает try catch на E_WARNING и E_NOTICE
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости