Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
je viens d'arriver dans le monde de Zend, habitué depuis un moment à travailler avec Symfony où beaucoup de choses sont automatisées, j'avoue que je suis un peu perdu dans la documentation légère du ZF.
Je mets en place une application pour ma boite, avec des délais très serrés, du coup, je fais des recherches pour les problèmes rencontrés mais j'avoue que je n'ai pas le temps d'y passer des journées entières
Voici mon problème : j'ai créé une application avec une architecture modulaire comme suit :
application/
----modules/
--------module1/
------------controleur.php
------------vues/
--------module2/
------------controleur.php
------------vues/
Mon FrontController est configuré pour chercher les bons templates et tout et tout. Nous partons du principe qu'il n'y a qu'un seul contrôleur par module. Ce contrôleur porte le nom "controleur.php" et le nom de la classe de ce contrôleur est constitué comme suit : "Module1Controleur". Tout ceci fonctionne à merveille après quelques recherches.
Mon problème est qu'aujourd'hui, pour afficher une action d'un module, je dois taper une url du type : "http://monurldebase/module/controller/action". Hors mon module et mon contrôleur portent exactement le même nom, je voudrais pouvoir taper une URL du type : "http://monurldebase/module/action" et qu'il m'affiche automatiquement le même résultat.
J'ai potassé la partie sur les routeurs du bouquin ZF, ainsi que la doc en ligne et je n'ai pas trouvé de réponse vraiment concluante. Après quelques tests désespérés, je me tourne vers vous pour m'aiguiller vers une solution.
Merci d'avance !
Hors ligne
up !
Hors ligne
Question : quel est l'interet des modules si c'est pour avoir qu'un seul controller par module ?
Sinon je crois qu'il faut utiliser les routers.
Dernière modification par alien7 (19-05-2009 16:16:40)
Hors ligne
L'intérêt c'est de reprendre une structure un peu à la Symfony, étant donné qu'on a pas eu le choix du framework utilisé, on fait avec ! un controleur regroupant toutes les actions de ce dernier. Tout ceci fait partie des normes de développement de l'entreprise et comme tout le monde le sait, dans le milieu professionnel, on doit s'adapter aux normes imposées et non le contraire
Hors ligne
Je sais qu'il faut utiliser les routeurs, c'est d'ailleurs sur cette base que j'ai fais quelques tests. J'avoue que je suis perdu dans toute cette documentation pas forcément très claire et complète.
Merci d'avance pour votre aide.
Hors ligne
Je ne suis pas certain qu'on puisse faire ca avec des routes (hors routes statiques).
Il faudrait pouvoir faire un truc du genre
$route = new Zend_Controller_Router_Route( ':module/:action/*', array('controller' => ':module') ); $router->addRoute('default', $route);
Mais je serai surpris que ça marche.
Par contre il doit être possible de modifier la requête avant le dispatch. dans le routeShutdown par exemple.
Ou si tu as peu de modules, grâce à des routes statiques.
Dernière modification par DavidV (26-05-2009 18:00:48)
Hors ligne