Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 16-09-2008 16:29:01

dquintard
Membre
Date d'inscription: 16-09-2008
Messages: 18

Choisir dynamiquement le nom du controller

Bonjour,
Lorsque j'appelle une page http://mondomaine/dir1/dir2/dir3/, Zend déduit par défaut que:
dir1 => module
dir2 =>controller
dir3 => action

Actuellement je dois donc avoir nécessairement un controller nommé Dir2Controller.php.

En fait, je souhaiterais pouvoir gérer moi même le controller et pouvoir appeler par exemple "AutredirController.php".

Avez vous une idée de la facon de procéder?

David

Hors ligne

 

#2 16-09-2008 17:25:43

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

Re: Choisir dynamiquement le nom du controller

Tout cela se passe dans le dispatcher, il faut le redéfinir et changer les règles d'inflection

Hors ligne

 

#3 17-09-2008 13:44:50

dquintard
Membre
Date d'inscription: 16-09-2008
Messages: 18

Re: Choisir dynamiquement le nom du controller

Bonjour et merci de ta réponse,
J'ai pas trouvé d'exemple de redéfinition de règles d'inflexion dans le dispatcher.
Alors, j'ai trouvé un exemple (qui fonctionne on dirait) avec du reroutage et j'aimerais savoir ce que tu en penses, si c'est correct? :

Zend_Loader::loadClass('Zend_Controller_Front');
Zend_Loader::loadClass('Zend_Controller_Router_Rewrite');
$frontController = Zend_Controller_Front::getInstance();

$router = new Zend_Controller_Router_Rewrite();

$cmtRoute = new Zend_Controller_Router_Route(
    "/:module/:controller/:action",
    array(  "controller"=>"nouveaucontroller",
            "action"=>"index"
    )
);
$router->addRoute("nouvelleroute",$cmtRoute);
$frontController->setRouter($router);

Hors ligne

 

#4 17-09-2008 14:38:20

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

Re: Choisir dynamiquement le nom du controller

Je ne suis pas sur, mais ton code indique que le controller vaut par défaut nouveaucontroller si :controller n'est pas spécifié.

Perso, j'essairai qqchose comme ca :

Code:

$cmtRoute = new Zend_Controller_Router_Route(
    "/:module/:action",
    array(  "controller"=>"nouveaucontroller",
            "action"=>"index"
    )
);

Dernière modification par nORKy (17-09-2008 14:38:50)


----
Gruiiik !

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