public function errorAction() { $error = $this->_getParam('error_handler'); $this->view->error_code = $error_code = Engine_Api::getErrorCode(true); // Handle missing pages switch ($error->type) { case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER: case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION: return $this->_forward('notfound'); break; default: break; } // Log this message if (isset($error->exception) && Zend_Registry::isRegistered('Zend_Log') && ($log = Zend_Registry::get('Zend_Log')) instanceof Zend_Log) { // Only log if in production or the exception is not an instance of Engine_Exception $e = $error->exception; if ('production' === APPLICATION_ENV || !$e instanceof Engine_Exception) { $output = ''; $output .= PHP_EOL . 'Error Code: ' . $error_code . PHP_EOL; $output .= $e->__toString(); $log->log($output, Zend_Log::CRIT); } } //$this->getResponse()->setRawHeader('HTTP/1.1 500 Internal server error'); $this->view->status = false; $this->view->errorName = get_class($error->exception); if (APPLICATION_ENV != 'production') { if ($error->exception instanceof Exception) { $this->view->error = $error->exception->__toString(); } } else { $this->view->message = Zend_Registry::get('Zend_Translate')->_('An error has occurred'); } }