2010-01-23 9 views
1

Je voudrais utiliser le ErrorCongtroller par défaut pour gérer les erreurs. Je l'ai enregistré comme un plugin de contrôleur frontal et il ne fait rien. Dois-je définir quelque chose d'autre pour attraper des contrôleurs et des actions non existants ou devrais-je ajouter du code à d'autres contrôleurs? est ici l'extrait de code pour l'enregistrement:Zend Framework Gestion des erreurs

$front = Zend_Controller_Front::getInstance(); 
$front->registerPlugin(new Zend_Controller_Plugin_ErrorHandler()); 
$front->returnResponse(true); 
$front->throwExceptions(true); 

Répondre

0

Qu'est-ce qui se passe lorsque vous définissez $front->throwExceptions(false);?

Je crois que ErrorHandler attrape uniquement les exceptions si vous dites au contrôleur frontal de ne pas les jeter (ou, les bulles, c'est ce que je veux dire je suppose).

En outre, faites-vous quelque chose avec la réponse retournée? Puisque vous avez défini $front->returnResponse(true);, vous devez recueillir la réponse vous-même et de sortie avec:

$response = $front->dispatch(); 
$response->sendResponse(); 
+0

Je l'ai déjà essayé avec les deux throwException vrai/faux. Il n'y a pas de différence. – Hubidubi

1

Quelle version de ZF utilisez-vous? Pour autant que j'ai remarqué dans les dernières versions, le gestionnaire d'erreur est enregistré par défaut. Seulement « chose » dont il a besoin est un ErrorController dans le module par défaut avec un errorAction

Voir le manuel pour plus de détails: http://framework.zend.com/manual/en/zend.controller.plugins.html#zend.controller.plugins.standard.errorhandler

+0

J'utilise 1.9.5. J'ai lu que errorle controlle devrait être enregistré par défaut mais cela ne fonctionne pas. J'utilise le contrôleur d'erreur du projet Quickstart (http://framework.zend.com/docs/quickstart/create-your-project) – Hubidubi