Bonjour !
Je viens vous ennuyer avec un petit soucis qui me préoccupe. Pas que je ne pourrais pas le contourner, mais j'aimerais surtout bien comprendre le pourquoi du comment...
J'utilise un plugin d'initialisation avec mon front controller, dans lequel je me connecte, entre autre à ma BDD. L'idée était d'intercepter les exceptions et de modifier l'objet request pour afficher une action "maison" du contrôleur d'erreur.
Un extrait de la méthode routeStartup:
J'ai peut être pas tout saisi au fonctionnement précis de Zend_Controller, mais apparemment après exécution du code, quelques dump plus tard, l'objet request est redéfini par rapport à l'uri, et du coup mon intervention est écrasée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public function routeStartup(Zend_Controller_Request_Abstract $request) { try { $this->initDb(); } catch (Zend_Exception $e) { // Affichage de la page d'erreur appropriée $request->setActionName('error-db') ->setControllerName('error') ->setModuleName('default') ->setParam('message', $e->getMessage()); } [...] }
J'ai déjà creusé du coté de $request->setDispatched(), sans succès.
Si vous pouviez m'aiguiller sur le moment précis du dispatcher durant lequel est initialisé l'objet request, et les "bonnes pratiques" courantes pour ce cas de figure. Même si personnellement ça me parait assez logique que le "court-circuit" se fasse dés l'initialisation en cas d'échec de connexion à la bdd, plutôt qu'à l'initialisation du contrôleur.
Merci d'avance !
Partager