Подтвердить что ты не робот

Zend framework 2 рекомендуется для обработки ошибок

Я заметил, что приложение Skeleton, которое предоставляет Zend, не обрабатывает error 500. Я знаю, что в ZF1 был ErrorController, который позаботился об этом. Я провел некоторое исследование в Интернете, но не нашел для этого четкого решения.

Итак, что лучше всего подходит для обработки ошибок в ZF2. Будет ли это на основе модуля или каким-либо глобальным обработчиком исключений/ошибок?

Я знаю, что другим решением было бы добавить ini_set('display_errors', true); в мой index.php, но мне не очень нравится это решение. Кажется, что структура должна обеспечить некоторый способ обработки ошибок.

4b9b3361

Ответ 1

Вы можете обрабатывать исключения в любом случае, если хотите, после того как вы поймаете его как следующий пример, в котором вы обнаруживаете исключение глобально...:

В методе onBootstrap в вашем Module.php вы можете присоединить функцию, выполняемую при возникновении события, следующее приложить функцию, которая будет выполняться при возникновении ошибки (исключения):

public function onBootstrap(MvcEvent $e)
{
    $application = $e->getApplication();
    $em = $application->getEventManager();
    //handle the dispatch error (exception) 
    $em->attach(\Zend\Mvc\MvcEvent::EVENT_DISPATCH_ERROR, array($this, 'handleError'));
    //handle the view render error (exception) 
    $em->attach(\Zend\Mvc\MvcEvent::EVENT_RENDER_ERROR, array($this, 'handleError'));
}

а затем определите функцию для обработки ошибки любым способом, например:

public function handleError(MvcEvent $e)
{
    //get the exception
    $exception = $e->getParam('exception');
    //...handle the exception... maybe log it and redirect to another page, 
    //or send an email that an exception occurred...
}