summaryrefslogtreecommitdiffstats
path: root/application/controllers/ErrorController.php
diff options
context:
space:
mode:
authorSimon2011-03-14 16:17:48 +0100
committerSimon2011-03-14 16:17:48 +0100
commitd583d0071274a8843b3a3cd7b7ec72d5a9942f53 (patch)
tree6fd2437ddefc93f94c0fbc3b1edcedcab02dd04a /application/controllers/ErrorController.php
parentApplication in 3 Modules gesplittet, Dev = unsere entwicklungsumgebung, user ... (diff)
downloadpbs2-d583d0071274a8843b3a3cd7b7ec72d5a9942f53.tar.gz
pbs2-d583d0071274a8843b3a3cd7b7ec72d5a9942f53.tar.xz
pbs2-d583d0071274a8843b3a3cd7b7ec72d5a9942f53.zip
Zweiter push um die änderungen hinzuzufügen, Trennung der Ansichten
Diffstat (limited to 'application/controllers/ErrorController.php')
-rw-r--r--application/controllers/ErrorController.php52
1 files changed, 52 insertions, 0 deletions
diff --git a/application/controllers/ErrorController.php b/application/controllers/ErrorController.php
new file mode 100644
index 0000000..01ee79b
--- /dev/null
+++ b/application/controllers/ErrorController.php
@@ -0,0 +1,52 @@
+<?php
+
+class ErrorController extends Zend_Controller_Action
+{
+
+ public function errorAction()
+ {
+ $errors = $this->_getParam('error_handler');
+
+ 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->view->message = 'Page not found';
+ print_a($errors);
+ break;
+ default:
+ // application error
+ $this->getResponse()->setHttpResponseCode(500);
+ $this->view->message = 'Application error';
+ 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;
+ }
+
+
+}
+