Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
M'inspirant de plusieurs sources j'essaie de mettre en place une gestion des erreur et un debug.
J'ai donc un contrôleur d'erreur :
<?php
class ErrorController extends Zend_Controller_Action
{
public function errorAction()
{
$this->exception = $this->_getParam('error_handler');
switch ($this->exception->type) {
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
$priorité = 4;
$liberreur = 'Page introuvable';
break;
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_OTHER:
switch (get_class($this->exception->exception)) {
case 'Zend_Viewexception' :
$priorité = 1;
$liberreur = 'Erreur de traitement d\'une vue';
break;
case 'Zend_Dbexception' :
$priorité = 1;
$liberreur = 'Erreur de traitement dans la base de données';
break;
case 'Zend_Auth_Adapterexception' :
$priorité = 1;
$liberreur = 'Erreur de traitement dans l identification';
break;
default:
$priorité = 1;
$liberreur = 'Erreur inconnue';
break;
}
break;
}
$this->view->message = $liberreur;
$logger = Zend_registry::get('logger');
$logger->log($liberreur,$priorité);
if (Zend_Registry::get('config')->debug->actif) {
Zend_Debug::dump($this->exception,null,true);
}
}
}
?>et une vue :
<html>
<head>
<title>Erreur</title>
</head>
<body>
<h1>Erreur</h1>
<p>Une erreur de type "<?php echo $this->message ?>" est apparue</p>
</body>
</html>Les messages de debug qui sont affichés suite à une erreur ne comportent pas le nom et la ligne du fichier dans lequel le dernier appel ayant causé l'exception a été fait. Je ne sais pas si je suis clair, j'aimerais identifier la ligne que j'ai tapé qui ne va pas ![]()
Dernière modification par bertra (04-03-2008 16:43:10)
Hors ligne
Logiquement, toute exception dispose des méthodes getTrace() et getTraceAsString().
Cordialement.
Hors ligne
Pages: 1