Mostrar los errores de php cuando se usa Zend framework

He estado usando Zend Framework y estoy viviendo con este problema por un tiempo, pero ahora es demasiado molesto, así que te enviaré la pregunta.

Hay ciertos problemas dentro del marco de Zend que Zend puede reconocer (como llamar a un controlador inexistente) y enviará ese problema al ErrorController. Lo estoy trabajando bien.

Parece que hay algunos problemas que Zend Framework fallará y mostrará el error a través de php, como si una determinada función no existiera o algo así. Esos que puedo ver y arreglar.

Sin embargo, a veces Zend no fallará, pero también enviará una respuesta vacía. Conseguiré una página en blanco. El diseño no aparece, no hay código, no hay nada que me dé una idea de lo que salió mal. La última vez, hubo un requerimiento () que falló. Tuve que resolver esto manualmente sin comentarios.

¿Alguno de ustedes ha experimentado esto? ¿Tiene algún consejo sobre cómo mostrar estos errores? ¡Cualquier ayuda sería apreciada!

El manejo interno de errores de los componentes MVC de la infraestructura solo puede atrapar Excepciones, no errores de PHP.

Para ayudar en la depuración durante el desarrollo, puede usar el estándar:

error_reporting(E_ALL|E_STRICT); ini_set('display_errors', 'on'); 

Además, si está utilizando el nuevo autocargador incluido con 1.8, use:

 Zend_Loader_Autoloader::getInstance()->suppressNotFoundWarnings(false); 

Permitir que se emitan sentencias include / require fallidas.

Para otros que se encuentran con esta pregunta: Cambié la siguiente línea en configs / application.ini

 resources.frontController.params.displayExceptions = 0 

A:

 resources.frontController.params.displayExceptions = 1 

Esto me permitió ver la Excepción completa, incluida stacktrace.

Establezca esto en su configuración:

 phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1 resources.frontController.params.displayExceptions = 1 

Edite el archivo public / index.php.
Cambie APPLICATION_ENV a ‘desarrollo’.

Esto usará la configuración de desarrollo en su archivo application / configs / application.ini. Esas configuraciones definen si suprimir errores.

Es muy tarde para responder esta pregunta ahora. Pero espero que ayude a alguien más …

Simplemente coloque la siguiente función en su archivo Bootstrap.php para habilitar excepciones.

 protected function _initErrorDisplay(){ $frontController = Zend_Controller_Front::getInstance(); $frontController->throwExceptions(true); } 

Abra urproject / application / config y abra application.ini
Cambiar la segunda línea

 phpSettings.display_errors = 0 

a

 phpSettings.display_errors = 1 

Ahora mostrará errores.

Decisión rápida y sucia, si ninguno de los métodos ya mencionados funcionó (útil para la versión antigua o fea de ZF):

  • encuentra ErrorController de tu aplicación.
  • Ponga la llamada de la función debug_print_backtrace en la parte superior del método init (con die () opcionalmente)

Para cualquiera para quien las respuestas dadas aquí no funcionaron, siempre se puede ir a los registros de apache para ver una descripción del problema. Por supuesto, sería más conveniente si esto se mostrara en la página, pero creo que es una alternativa aceptable.

  /var/log/apache2/error.log 

Tengo este archivo abierto con vim y escriba: e para actualizar y G para ir al final de la página para ver el error más reciente cuando obtengo la página en blanco. Te dice la hora en que ocurrió el error, el mensaje y la línea, por lo que es bastante útil.

ponga estas líneas en application / configs / config.php

 error_reporting(E_ALL|E_STRICT); ini_set('display_errors', 'on');