Выбрасывать исключение с уведомлениями php с использованием Symfony 2.3

Поскольку я обновил свой проект до Symfony 2.3, уведомления php больше не вызывают исключений.

Я могу попытаться получить доступ к неопределенным индексам в массивах, и отобразится уведомление, но исключение не будет.

Сначала я подумал, что сбился с толку, и, возможно, так было в предыдущей версии. Я нашел вопрос о stackoverflow, который предполагает иное.

как обрабатывать уведомления PHP в symfony2

Есть ли способ заставить Symfony 2.3 выдавать исключения в уведомлениях symfony2?


person d0001    schedule 19.06.2013    source источник


Ответы (2)


Взгляните на начало метода boot() в FrameworkBundle:

public function boot()
{
    ErrorHandler::register(null, false)->throwAt($this->container->getParameter('debug.error_handler.throw_at'), true);
    // ...
}

Даже если вы зарегистрируете свой собственный обработчик ошибок в AppKernel (как это делал я), FrameworkBundle переопределит его. Но вы можете настроить обработчик ошибок FrameworkBundle с помощью параметра debug.error_handler.throw_at, например:

# in config.yml, for example
parameters:
    # ALWAYS throw exceptions for notices, warnings, etc.
    debug.error_handler.throw_at: -1

Я не знаю, что это где-то задокументировано.

Поскольку уведомления и предупреждения PHP часто указывают на серьезные ошибки программирования (ооо!), Мне нравится всегда генерировать исключения для всего, даже в производственной среде.

person Ian Phillips    schedule 14.06.2016

Я нашел ответ. Вот он для справки.

https://github.com/symfony/symfony-standard/blob/master/UPGRADE-2.3.md

person d0001    schedule 19.06.2013