Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
J'ai un souci avec la gestion des erreurs comme tout le monde je me suis inspiré du code de julien un copié coller (je remet pas le code c'est le même) néanmoins je me heurte a une erreur. Bon alors j'ai lu les informations sur le forum, sur google... alors évitez les liens svp. est ce que cela pourrait venir d'une mauvaise configuration des modules (je ne pense pas)
mon bootsrap de lancement du frontController:
// Front Controller Init $controller = self::getInstance(); $router = $controller->getRouter(); // Les Routes $router->addRoute( $__TYPE_PROFILE, new Zend_Controller_Router_Route( "/:module/:controller/:action/", array ( "module" => $__TYPE_PROFILE, "controller"=>"index", "action"=>null)) ); require_once 'Zend/Controller/Plugin/ErrorHandler.php'; $plugin = new Zend_Controller_Plugin_ErrorHandler(); $plugin->setErrorHandlerModule('default') ->setErrorHandlerController('error') ->setErrorHandlerAction('error'); // Front Controller Modif $controller->setControllerDirectory('./modules') ->addModuleDirectory('./modules') ->setRouter($router) ->registerPlugin($plugin); // Démarrage de la session require_once 'Zend/Session.php'; Zend_Session::start(); try{ $controller->dispatch(); } catch (Exception $exception) { exit($exception->getMessage()); }
Lorsque je declenche une erreur très simple j'ai retirer une page que j'appel donc normalement je devrait avoir une jolie erreur 404, mais voila il me redirige vers ma page d'index (première page du site).
Après avoir passé un petit bout de temps j'ai pu observer qu'en fait il passait dans le controleur d'erreur, j'ai mis des beaux throw new InvalidArgumentException('ooooooo'); et j'ai vu qu'il passait dans les méthode prédispatch, error et postdispach.
A première vue tout va bien mais quand je les réenleve il me redirige sur ma page d'accueil.
Alors j'ai enlever les fichier error/error.phtml que j'ai créer et j'ai enlever le fait que l'on n'a pas besoin de bloquer le viewRenderer donc en haut dans le prédispatch j'avais
// $this->_helper->viewRenderer->setNoRender(true); // ne rend aucune vue automatiquement $this->_exception = $this->_getParam('error_handler'); // $this->_response->clearBody(); // on vide le contenu de la réponse // $this->_response->append('error',null); // on ajoute un segment 'error' dans la réponse
la il m'a bien informé qu'il ne trouvait pas le script de ma vue et me donne cette erreur (normal)
=> script 'error/error.phtml' not found in path (./modules/default/views/scripts/:./modules/admin/views/scripts/)
Je lui remet le fichier de la vue et je laisse le viewrenderer qui rend la vue automatiquement je m'attendais a ce que le fichier error .phtml ce charge mais voila rien. Il me redirige vers la page d'accueil initial du site.
Je ne comprend pas ce qu'il ce passe pourriez me donner une solution a mon problème et surtout m'expliquer le fonctionnement j'avoue que ne comprend vraiment pas la logique.
Hors ligne
Pages: 1