Mon application gère les erreurs heureusement en développement, les erreurs et les exceptions. Lorsque je passe en production, l'application renvoie simplement une page vierge car la configuration est configurée pour ne pas afficher les erreurs. Existe-t-il une méthode standard dans ZF pour envoyer des visiteurs à une «Page non trouvée» bien formatée en utilisant une mise en page de l'application afin de ne pas leur présenter une page vierge. Merci d'avance.Zend Framework gérer gracieusement les exceptions dans l'environnement de production
Répondre
Habituellement, si vous avez utilisé le CLI pour créer le projet zend il sera déjà en mesure de faire ce que vous demandez. Si vous allez les scripts/view/errors/error.phtml ce sera le fichier phtml que vous pouvez utiliser pour créer la vue que vous cherchez à utiliser.
Bien que si vous n'avez pas utilisé la CLI pour créer le projet zend ci-dessous est le produit ErrorController utilisé
<?php
class ErrorController extends Nanaly_Controller
{
public function errorAction()
{
$errors = $this->_getParam('error_handler');
switch ($errors->type) {
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ROUTE:
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
// 404 error -- controller or action not found
$this->getResponse()->setHttpResponseCode(404);
$this->view->message = 'Page not found';
break;
default:
// application error
$this->getResponse()->setHttpResponseCode(500);
$this->view->message = 'Application error';
break;
}
// Log exception, if logger available
if ($log = $this->getLog()) {
$log->crit($this->view->message, $errors->exception);
}
// conditionally display exceptions
if ($this->getInvokeArg('displayExceptions') == true) {
$this->view->exception = $errors->exception;
}
$this->view->request = $errors->request;
}
public function getLog()
{
$bootstrap = $this->getInvokeArg('bootstrap');
if (!$bootstrap->hasPluginResource('Log')) {
return false;
}
$log = $bootstrap->getResource('Log');
return $log;
}
}
Remarque: ce contrôleur a été généré en utilisant Zend 1.10.0
et la vue doit être placé au même endroit que mentionné précédemment.
Vous pouvez le faire avec une coutume ErrorController, un exemple:
http://www.talkincode.com/a-useful-error-controller-class-for-zend-framework-applications-729.html
Merci, je vais jeter un coup d'oeil et vous le faire savoir. – ed103
Belle classe, mais je semble toujours avoir le même problème, si j'appelle hit toute URL qui n'est pas spécifiée dans ma liste acl comme myurl/foo, je reçois: Erreur fatale: exception non interceptée 'Zend_Acl_Exception' avec le message 'Ressource 'foo' non trouvé 'dans /Users/marchampson/Sites/heavenlycakes/trunk/library/Zend/Acl.php:347 Stack trace: # 0 ... et un peu plus, mais la boîte de commentaires est à court de caractères .. – ed103
Correction mais laissera ceci ouvert pendant 1 jour de plus dans l'espoir que quelqu'un puisse faire la lumière. On dirait que les contrôleurs travaillaient, mais ... je devais mettre une sortie; commande à la fin de mon fichier de vue error.phtml. Si cela ne s'est pas arrêté là, j'ai eu l'erreur fatale ci-dessus. Des idées? – ed103
- 1. Comment lancer 404 exceptions dans Zend Framework
- 2. Documentation Zend Framework, exceptions
- 3. Zend Framework: attraper les exceptions de savon personnalisé
- 4. Comment gérer les exceptions?
- 5. GAE comment voir les exceptions de production?
- 6. Gestion des exceptions lancées dans les plugins de contrôle de Zend Framework
- 7. Comment gérer les exceptions WCF dans ASP.NET
- 8. Comment déplacer Zend Framework du développement à la production?
- 9. Comment gérer les exceptions REST?
- 10. Gérer HttpRequestValidationException gracieusement et compatible ASP.net AJAX?
- 11. Exemple de code pour gérer les exceptions
- 12. Comment gérer les sorties et les exceptions Python XML-RPC?
- 13. Calendrier dans Zend Framework
- 14. Zend Studio + Zend Framework
- 15. Gestion des exceptions de sortie/production iPhone
- 16. Existe-t-il une fonction dans Zend Framework pour gérer les téléchargements de fichiers?
- 17. Confirmation dans zend framework
- 18. Modèles dans Zend Framework
- 19. Comment gérer correctement les exceptions système?
- 20. Où puis-je gérer les exceptions asynchrones?
- 21. ffmpeg + PHP + Zend Framework
- 22. Zend Studio Intellisense + zend Framework
- 23. Installation de Zend Framework
- 24. Zend Framework: Erreur Zend_Db
- 25. Bootstrapping répété dans Zend Framework
- 26. Problème Ajax dans Zend Framework
- 27. html_entity_decode équivalent dans Zend Framework
- 28. gérer gracieusement les erreurs de validation dans un fichier XML en C#
- 29. Zend Studio 7.0 + Zend Framework
- 30. Comment profiler Doctrine dans Zend Framework
Merci. J'ai utilisé la CLI et tout a bien fonctionné, j'ai édité le fichier error.phtml pour ajouter du style html afin qu'il soit dans le même aspect que le reste du site. Pour que cela fonctionne dans la production, j'ai dû quitter; à la fin de error.phtml. Cheers, Marc – ed103