Как перехватить ВСЕ исключения, которые выдают в Symfony 4 (включая те, которые выдают в консоли, phpunit, плохая конфигурация и т. Д.) - PullRequest
0 голосов
/ 24 июня 2019

Symfony 4 создает множество исключений. Например: исключения команды консоли, ошибки неправильной конфигурации YAML (также отображаются в консоли), исключения во время запроса и т. Д. К сожалению, не все из них можно отследить с помощью документированного решения: https://symfony.com/doc/current/reference/events.html#kernel-exception Ни одно из исключений консоли не запускает событие kernel.exception.

Я пытаюсь сделать это с Symfony 4.2. *

Я нашел уродливое решение, в котором я переопределяю один из методов класса Kernel (Kernel.php). Но документация ничего не говорит об этом решении, и мне интересно, есть ли лучший способ перехватить ВСЕ исключения и зарегистрировать их, используя Monolog.

    /**
     * @throws \Throwable
     */
    protected function initializeContainer() {

        try {
            $container = parent::initializeContainer();
        } catch (\Throwable $throwable){
            // here i can handle those exceptions/errors
            $this->logCriticalErrors($throwable);
            throw $throwable;
        }
        return $container;
    }

Я ожидаю перехватить и записать ВСЕ возможное выбрасываемое исключение, в том числе: ошибки в конфигурации YAML любого установленного пакета, исключения, брошенные непосредственно в тестах PHPUnit и т. Д., В один файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...