Отлавливаем исключения в плагине

Если в вашем 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);
        }
    }
 
}

Вот и всё.
Теги:
Zend Framework, плагин
Добавлено: 01 Мая 2018 15:02:13 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...