Generalnie wszystko mi działa, stworzyłem sobie klasę do wysyłania wiadomości i z poziomu ErrorController.php odwołuje się do tej funkcji, zastanawiam się tylko czy można jeszcze inne rzeczy wyciągnąć z błedów i czy prawidłowo to robię?
dwie rzeczy sobie wyciągam:
$send = new My_Mail();
w zasadzie mail, który do mnie przychodzi jest wystarczający.
Co zrobić z błędami, które nie są wyświetlane przez ErrorController? które całkowicie wywalają aplikacje i przy .htaccess włączonym na staging nie wyświetlają nic.. da się jakoś zrobić powiadamianie o takich błędach?
$errors = $this->_getParam('error_handler'); if (!$errors || !$errors instanceof ArrayObject) { $this->view->message = 'You have reached the error page'; return; } 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); $priority = Zend_Log::NOTICE; $this->view->message = 'Strona, której poszukujesz nie została znaleziona.'; break; default: // application error $this->getResponse()->setHttpResponseCode(500); $priority = Zend_Log::CRIT; $this->view->message = 'Błąd aplikacji'; break; } // Log exception, if logger available if ($log = $this->getLog()) { $log->log($this->view->message, $priority, $errors->exception); $log->log('Request Parameters', $priority, $errors->request->getParams()); } // conditionally display exceptions if ($this->getInvokeArg('displayExceptions') == true) { $this->view->exception = $errors->exception; } $this->view->request = $errors->request; $send = new My_Mail(); } public function getLog() { $bootstrap = $this->getInvokeArg('bootstrap'); if (!$bootstrap->hasResource('Log')) { return false; } $log = $bootstrap->getResource('Log'); return $log; }