Mam ustawiony ErrorController a w nim taki kod wycinek
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 = 'Strony nie odnaleziono'; break;
I teraz chciałem ErrorController rozszerzyć o obsługę innych błędów
Na razie zrobiłem tak chociaż nie jestem przekonany do tego rozwiązania chodzi mi o obsługę błędu typu
Message: script 'index/misio.html' not found in path (C:/.../application/views\scripts/)
Wygląda to tak
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_OTHER: $class = get_class($errors->exception); switch ($class){ case 'Zend_View_Exception': $this->view->message = 'Nieprawidłowa podstrona'; break; }
Czy jest jakiś sensowniejszy sposób na obsługę tego ?
Tak samo robiłem z bazą
public function addEmailSender($data){ $table_email = new sendemail(); try { $table_email->insert($data_email); return true; } catch (Zend_Db_Exception $e) { $db_adapter = Zend_Db_Table::getDefaultAdapter(); 'timestamp' => 'timestamp' ); 'db'=> $db_adapter, 'table' => 'log', 'columnMap' => $columnMapping )); $logger = new Zend_Log($log_db); $logger->log($e->getMessage(), 3); return false; }
I fajnie by to też można było jakoś przenieść do errorControllera albo informacje o błędzie.
Mam nadzieję, że w miarę jasno to wytłumaczyłem.
Pozdrawiam
Oskar