Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je découvre depuis peu le Zend Framework et j'ai une petite question.
J'ai utilisé jusque là l'architecture modulaire proposée par zend : 
/application
        /module1
              /controllers
              /views
        /module2
              /controllers
              /views
        /module3
              /controllers
              /views
Maintenant j'aimerai regrouper certains module sous un même répertoire pour avoir l'arborescence suivante
/application
   /rep1
        /module1
              /controllers
              /views
        /module2
              /controllers
              /views
   /rep2
        /module3
              /controllers
              /views
 ...
et ainsi pouvoir accéder à ces modules par http://localhost/rep1/module1/controller/action
Pour cela j'ai ajouté les repertoires contenant les modules : 
    $frontController->addModuleDirectory('./application/rep1');
        $frontController->addModuleDirectory('./application/rep2');
Avec ça j'arrivetoujours  à accéder au module directement par http://localhost/module1/controller/action
J'espèrais pouvoir arrivée à mes fins en ajoutant une route : 
        $router->addRoute('rep1', new Zend_Controller_Router_Route('rep1/:module/:controller/:action/*'));
Avec cela j'arrive toujours à atteindre mes modules par l'url http://localhost/module1/controller/action
mais avec l'url http://localhost/rep1/module1/controller/action il me sort l'erreur suivante : 
         Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (module1)'
Quelqu'un aurait-il une idée ?
Merci d'avance
Hors ligne
non tu peux choisir l'arborescence de ton choix pour placer tes modules
mais les url elle sont toujours /baseUrl/Module/Controleur/Action/ParamName/ParamValue
mais tu n'est pas obligé d'avoir les mêmes nom de module dans l'url et dans le dossier
/baseUrl/Module/Controleur/Action/ParamName/ParamValue peut très bien être dans
/Rep1/Module25/Controleurs
j'ai moi
/
   /app
      /controllers
      /module1
         /controllers
      /module2
         /controllers
   /genericmodules
      /module1
         /controllers
      /module2
         /controllers
   /lib
A+JYT
Hors ligne
Merci pour ta réponse
En fait j'ai réussi à faire ce que je voulais : 
Je remplace 
         $router->addRoute('rep1', new Zend_Controller_Router_Route('rep1/:module/:controller/:action/*'));
par ce bout de code : 
    $frontController->addModuleDirectory('./application/rep1');
     $route = new Zend_Controller_Router_Route(
        'rep1/:module',
        array(
            'module' => 'defaultmodule',
        )
    );
    $router->addRoute('accueil', $route);
Du coup j'accède bien à mon module par l'url http://localhost/rep1/module1/
Et ça me permet d'avoir un module par défaut pour l'url http://localhost/rep1
Comme quoi il suffit de poser la question pour trouver soi même la réponse ;-)
Philippe
Hors ligne
Pages: 1