Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 27-08-2008 15:35:37

ondex
Nouveau membre
Date d'inscription: 26-08-2008
Messages: 5

Modification du Router dans un Plugin

Salut à tous,

je souhaite modifier le router utilisé par Zend dans un plugin. Donc, dans mon plugin :

Code:

public function routeStartup(Zend_Controller_Request_Abstract $request)
{
    $frontController = Zend_Controller_Front::getInstance();
    $frontController->setRouter($oRouter);
}

(en réalité, c'est un peu plus que ça car c'est dépendant de la config)

Mais ça ne marche pas car dans le fichier Zend/Controller/Front.php, à la ligne 854 :

Code:

        /**
         * Initialize router
         */
        $router = $this->getRouter();
        $router->setParams($this->getParams());

        /**
         * Initialize dispatcher
         */
        $dispatcher = $this->getDispatcher();
        $dispatcher->setParams($this->getParams())
                   ->setResponse($this->_response);

        // Begin dispatch
        try {
            /**
             * Route request to controller/action, if a router is provided
             */

            /**
            * Notify plugins of router startup
            */
            $this->_plugins->routeStartup($this->_request);

            $router->route($this->_request);

On voit que le routeur est obtenu avant l'appelle à routeStartup donc la modification faite dans le plugin n'est pas prise en compte. Puisqu'il n'y a aucun impact à déplacer le getRouter après le routeStartup, j'aimerais proposé un patch mais nouveau dans la communauté, je préfère demander votre avis ici avant.

Pensez vous que je suis dans l'erreur ?

PS : je part en vacance ce soir et je n'aurais pas de connexion donc ne vous etonnez pas si je ne répond pas après 20h, retour dans 1 semaine.

Hors ligne

 

#2 28-08-2008 08:57:14

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: Modification du Router dans un Plugin

aide toi de ce schama :
http://www.kitpages.fr/cms/site/tutoria … lobale.jpg

Si tu veux changé le router, fait le dans ton bootstrap
Si tu veux modifier son comportement c'est dans rootstartup

Mais, rien ne t'empêche à mon avis de faire dans ton plugin:

Code:

Zend_Controller_Front::getInstance()->setRouter($myrouter);

----
Gruiiik !

Hors ligne

 

#3 28-08-2008 17:12:57

Julien
Membre
Date d'inscription: 16-03-2007
Messages: 501

Re: Modification du Router dans un Plugin

ondex>> Ton idée est intéréssante, un patch non, mais un improvement oui, je l'ai posté là : http://framework.zend.com/issues/browse/ZF-4106

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages