Intereting Posts
Symfony 3.4 Используйте представление внутри моего пакета Строгая стандартная ошибка при загрузке изображения с помощью скрипта PHP как вызвать функцию в PHP через 10 секунд загрузки страницы (не используя HTML) Аутентификация системы без сеансов – Только куки – Является ли это достаточно безопасным? Что значит избежать строки? regex php, строка соответствия с переменным текстом (буквы, цифры, подчеркивание, ) Передача списка Python в php Symfony Console – перезаписать параметры по умолчанию Почему PhpBrowser от Codeception не соответствует заголовку «Обновить»? Обнаружение Android-браузера (от версии от 1 до 2.3 прошивки) в PHP Обеспечение доступа веб-приложений с одного компьютера на каждого пользователя Неопределенное смещение 1 Изменение ereg_replace до эквивалентного preg_replace PHP md5 () дает другой вывод, затем MySQL md5 Рекурсивная функция PHP SimpleXML для перечисления дочерних элементов и атрибутов

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

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

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

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

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

В методе 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... }