Отлавливаем исключения в плагине
Если в вашем Zend Framework приложении есть плагин, который выбрасывает исключение, то это приведёт к тому, что пользователю скорее всего отобразится две страницы: та, которая не загрузилась до конца и страница с ошибкой. Как это исправить вы узнаете в данном уроке.
Процесс отлова исключений в плагине:
Используйте метод preDispatch() как главный контейнер;
Отловите исключение и сразу же перенаправьте пользователя на контроллер error;
Создайте объект, который будет взаимодействовать с исключением для того, чтобы действие error сработало успешно;
Вот код:
<?php
class Application_Plugin_Foo extends Zend_Controller_Plugin_Abstract
{
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
try {
// делать что-то, что выбросит исключение
} catch (Exception $e) {
// Указать куда перенаправиться
$request->setModuleName('default');
$request->setControllerName('error');
$request->setActionName('error');
// Настроим отлов исключения
$error = new Zend_Controller_Plugin_ErrorHandler();
$error->type = Zend_Controller_Plugin_ErrorHandler::EXCEPTION_OTHER;
$error->request = clone($request);
$error->exception = $e;
$request->setParam('error_handler', $error);
}
}
}
Вот и всё.
Комментарии:
Нету комментариев для вывода...