Ver Mensaje Individual
  #17 (permalink)  
Antiguo 01/10/2012, 15:45
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: problema ajax con zend 1.12

Pues simplemente es tener un error controller en el módulo default, con algo similar a esto:
Código PHP:
Ver original
  1. <?php
  2.  
  3. class ErrorController extends Zend_Controller_Action
  4. {
  5.     /**
  6.      * The default error Action
  7.      */
  8.     public function errorAction()
  9.     {
  10.         $errors = $this->_getParam('error_handler');
  11.        
  12.         if (!$errors || !$errors instanceof ArrayObject) {
  13.             $this->view->message = 'You have reached the error page';
  14.             return;
  15.         }
  16.        
  17.         switch ($errors->type) {
  18.             case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ROUTE:
  19.             case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
  20.             case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
  21.                 // 404 error -- controller or action not found
  22.                 $this->getResponse()->setHttpResponseCode(404);
  23.                 $priority = Zend_Log::NOTICE;
  24.                 $this->view->message = 'Page not found';
  25.                 break;
  26.             default:
  27.                 // application error
  28.                 $this->getResponse()->setHttpResponseCode(500);
  29.                 $priority = Zend_Log::CRIT;
  30.                 $this->view->message = 'Application error';
  31.                 break;
  32.         }
  33.        
  34.         // Log exception, if logger available
  35.         if ($log = $this->getLog()) {
  36.             $log->log($this->view->message, $priority, $errors->exception);
  37.             $log->log('Request Parameters', $priority, $errors->request->getParams());
  38.             $log->log('Exception', $priority, $errors->exception);
  39.         }
  40.        
  41.         // conditionally display exceptions
  42.         if ($this->getInvokeArg('displayExceptions') == true) {
  43.             $this->view->exception = $errors->exception;
  44.         }
  45.        
  46.         $this->view->request   = $errors->request;
  47.     }
  48.  
  49.     /**
  50.      * Return the active log
  51.      * @return Zend_Log
  52.      */
  53.     public function getLog()
  54.     {
  55.         $bootstrap = $this->getInvokeArg('bootstrap');
  56.         if (!$bootstrap->hasResource('Log')) {
  57.             return false;
  58.         }
  59.         $log = $bootstrap->getResource('Log');
  60.         return $log;
  61.     }
  62. }

Luego un error.phtml así:
Código PHP:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4.   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5.   <title>Zend Framework Default Application</title>
  6. </head>
  7. <body>
  8.   <h1>An error occurred</h1>
  9.   <h2><?php echo $this->message ?></h2>
  10.  
  11.   <?php if (isset($this->exception)): ?>
  12.  
  13.   <h3>Exception information:</h3>
  14.   <p>
  15.       <b>Message:</b> <?php echo $this->exception->getMessage() ?>
  16.   </p>
  17.  
  18.   <h3>Stack trace:</h3>
  19.   <pre><?php echo $this->exception->getTraceAsString() ?>
  20.   </pre>
  21.  
  22.   <h3>Request Parameters:</h3>
  23.   <pre><?php echo $this->escape(var_export($this->request->getParams(), true)) ?>
  24.   </pre>
  25.  
  26.   <?php endif ?>
  27.  
  28. </body>
  29. </html>