php - Informe de errores en el marco zend
zend-framework error-reporting (2)
Tengo problemas para informar errores en Zend Framework, los mensajes de error no se muestran en el navegador y recibo un error como este:
Ocurrió un error
Error de la aplicación
Sin embargo, ya uso esa configuración en mi archivo application.ini:
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
phpSettings.track_errors = 1
phpSettings.error_reporting = E_ALL
Gracias de antemano
La configuración que mencionas es la administración de errores de php, mientras que lo que estás buscando es realmente el informe Zend error y excepción. Como se mencionó en kjy112, parece que Zend se encuentra por defecto en el entorno de producción, que no muestra ninguno de los informes de errores.
El inicio rápido de Zend puede ser la forma más rápida de ayudarlo a ponerse al día sobre esto: http://framework.zend.com/manual/en/zend.application.quick-start.html
Básicamente puede establecer una definición dentro de su archivo index.php (no el más limpio), o recomiendo configurarlo en su configuración de apache y luego leerlo desde su archivo index.php. Uso algo como esto en mi Bootstrap:
if (!defined(''APPLICATION_ENVIRONMENT''))
{
if (getenv(''APPLICATION_ENVIRONMENT'')) {
define(''APPLICATION_ENVIRONMENT'', getenv(''APPLICATION_ENVIRONMENT''));
} else {
define(''APPLICATION_ENVIRONMENT'', ''production'');
}
}
La vista Zend error.phtml predeterminada tiene algo similar al siguiente código, que bloquea la pantalla en el entorno de producción:
<?php if (''production'' !== $this->env): ?>
<div id="error">
<p>
<ul class="errorList">
<li>
<h3><?php echo $this->message ?></h3>
</li>
<li>
<h4>Exception information:</h4>
<p><?php echo $this->exception->getMessage() ?></p>
</li>
<li>
<h4>Stack trace:</h4>
<p><?php echo $this->exception->getTraceAsString() ?></p>
</li>
<li>
<h4>Request Parameters:</h4>
<p><?php var_dump($this->request->getParams()) ?></p>
</li>
</ul>
</p>
</div>
<?php endif ?>
Tuve el mismo problema que finalmente se solucionó en 2 pasos:
{project name}/application/configs/application.ini
y al final agregue las siguientes líneas:
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
settings.debug.enabled = 1
2.Modificar {project name}/public/index.php
<?php
// Define path to application directory
defined(''APPLICATION_PATH'') || define(''APPLICATION_PATH'', realpath(dirname(__FILE__) . ''/../application''));
// Define application environment
defined(''APPLICATION_ENV'') || define(''APPLICATION_ENV'', (getenv(''APPLICATION_ENV'') ? getenv(''APPLICATION_ENV'') : ''production''));
// Typically, you will also want to add your library/ directory
// to the include_path, particularly if it contains your ZF installed
set_include_path(implode(PATH_SEPARATOR, array(
dirname(dirname(__FILE__)) . ''/library'',
get_include_path()
)));
/**
* Zend_Application
*/
require_once ''Zend/Application.php'';
// Create application, bootstrap, and run
$application = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH . ''/configs/application.ini'');
$application->bootstrap()->run();
?>
Espero que esto también funcione para usted.