Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 17-10-2007 13:51:34

fi-lou
Nouveau membre
Date d'inscription: 17-10-2007
Messages: 2

[Zend_Controller][1.0.1] Architecture modulaire : ajouter un niveau ?

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

 

#2 17-10-2007 17:12:11

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Zend_Controller][1.0.1] Architecture modulaire : ajouter un niveau ?

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

 

#3 18-10-2007 14:44:05

fi-lou
Nouveau membre
Date d'inscription: 17-10-2007
Messages: 2

Re: [Zend_Controller][1.0.1] Architecture modulaire : ajouter un niveau ?

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

 

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