Pimcore\Controller\Plugin\ErrorHandler::_handleError PHP Метод

_handleError() защищенный Метод

protected _handleError ( Zend_Controller_Request_Abstract $request )
$request Zend_Controller_Request_Abstract
    protected function _handleError(\Zend_Controller_Request_Abstract $request)
    {
        // remove zend error handler
        $front = \Zend_Controller_Front::getInstance();
        $front->unregisterPlugin("Zend_Controller_Plugin_ErrorHandler");
        $response = $this->getResponse();
        if ($response->isException() && !$this->_isInsideErrorHandlerLoop) {
            // get errorpage
            try {
                // enable error handler
                $front->setParam('noErrorHandler', false);
                $errorPath = Config::getSystemConfig()->documents->error_pages->default;
                if (Site::isSiteRequest()) {
                    $site = Site::getCurrentSite();
                    $errorPath = $site->getErrorDocument();
                }
                if (empty($errorPath)) {
                    $errorPath = "/";
                }
                $document = Document::getByPath($errorPath);
                if (!$document instanceof Document\Page) {
                    // default is home
                    $document = Document::getById(1);
                }
                if ($document instanceof Document\Page) {
                    $params = Tool::getRoutingDefaults();
                    if ($module = $document->getModule()) {
                        $params["module"] = $module;
                    }
                    if ($controller = $document->getController()) {
                        $params["controller"] = $controller;
                        $params["action"] = "index";
                    }
                    if ($action = $document->getAction()) {
                        $params["action"] = $action;
                    }
                    $this->setErrorHandler($params);
                    $request->setParam("document", $document);
                    \Zend_Registry::set("pimcore_error_document", $document);
                    // ensure that a viewRenderer exists, and is enabled
                    if (!\Zend_Controller_Action_HelperBroker::hasHelper("viewRenderer")) {
                        $viewRenderer = new \Pimcore\Controller\Action\Helper\ViewRenderer();
                        \Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
                    }
                    $viewRenderer = \Zend_Controller_Action_HelperBroker::getExistingHelper("viewRenderer");
                    $viewRenderer->setNoRender(false);
                    if ($viewRenderer->view === null) {
                        $viewRenderer->initView(PIMCORE_WEBSITE_PATH . "/views");
                    }
                }
            } catch (\Exception $e) {
                Logger::emergency("error page not found");
            }
        }
        // call default ZF error handler
        parent::_handleError($request);
    }
ErrorHandler