Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
J'essaye de mettre en place mes routes et j'ai vu qu'il fallait les initialiser dans le bootstrap.
Par contre j'ai besoin d'accéder à une action d'un module car les routes sont écrites dans ma BDD, or je n'arrive pas à instancier une classe dans le bootstrap.
Comment peut-on procéder afin d'accéder à une action d'un contrôleur dans le bootstrap ?
Ou bien comment puis je définir mes routes autre part ?
Merci
Hors ligne
Tes routes doivent être définies, à mon avis, dans un plugin. Le plugin appelé sur le routeStartup(). Regarde la doc sur Zend_Controller_Plugin_Abstract.
Ensuite tu récupères ta DB depuis Zend_Registry ou alors tu instancies ta table directement dans ton plugin. Mais tu devrais mettre tout ça en cache parce que c'est très lourd comme manière de faire.
Si à n'importe quel moment, tu as besoin d'accéder à une action d'un contrôleur ailleurs que dans le contrôleur lui-même alors c'est que tu es devant une grosse erreur de conception ou une incompréhension.
Hors ligne
Merci pour ta réponse.
En fait au départ, j'avais fait un formulaire pour créer une entrée dans un menu (stockée dans une BDD) et j'utilise ensuite Zend_Navigation pour créer mon arborescence (à partir donc des données de la BDD). Donc dans le formulaire j'avais prévu des champs module, controller, action, params, route....
Mes routes sont "dynamiques", elles varient selon ce qu'il y a dans mon arborescence et je ne peux donc pas les rentrer à la main dans un fichier.ini.
De même l'arborescence créée via Zend_Navigation devrait elle aussi être disponible dès le lancement de l'application (dans le bootstrap ??)
Tout ça peut donc être réglé par un plugin alors ? Je vais regarder la doc de plus près
EDIT : en fait je voudrais plutôt savoir s'il est possible d'instancier une classe dans le bootstrap. J'ai un module navigation et un controleur menu qui s'occupe de gérer les menus. J'ai dedans une action qui crée un container via Zend_Navigation et c'est cette action que j'aimerais lancer dès le chargement de l'application. De plus cette action "récupère" ce qu'il y a dans la BDD ce qui me permettrais de faire mes addroute() directement.
Dernière modification par riky'' (12-08-2009 14:49:09)
Hors ligne
Pages: 1