Skip to content

Instantly share code, notes, and snippets.

@carlosfilho88
Created November 17, 2014 12:37
Show Gist options
  • Save carlosfilho88/9064a125deb39c6e528d to your computer and use it in GitHub Desktop.
Save carlosfilho88/9064a125deb39c6e528d to your computer and use it in GitHub Desktop.
Handling exceptions with Zend Framework 1
<?php
class ErrorController extends Zend_Controller_Action {
public function init() {
parent::init();
}
public function errorAction() {
$errors = $this->_getParam('error_handler');
$boot = $this->getInvokeArg('bootstrap');
if ($boot->hasResource('logger')) {
$boot->getResource('logger')->err($errors->exception);
}
switch ($errors->type) {
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ROUTE:
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
// 404 error -- controller or action not found
$this->getResponse()->setHttpResponseCode(404);
$this->render();
break;
default:
// application error
$this->getResponse()->setHttpResponseCode(500);
$this->render('error500');
break;
}
// Log exception, if logger available
if ($log = $this->getLog()) {
$log->crit($this->view->message, $errors->exception);
}
// conditionally display exceptions
if ($this->getInvokeArg('displayExceptions') == true) {
$this->view->exception = $errors->exception;
}
$this->view->request = $errors->request;
}
public function getLog() {
$bootstrap = $this->getInvokeArg('bootstrap');
if (!$bootstrap->hasPluginResource('Log')) {
return false;
}
$log = $bootstrap->getResource('Log');
return $log;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment