Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je débute sur ZF et rencontre un problème (peut-être de compréhension...) avec les controllers et les modules.
J'utilise actuellement les modules et souhaite organiser leurs controllers via des sous-dossiers.
Je ne sais pas si j'ai bien compris le concept des modules, mais je compte les utiliser pour des sous-applications de l'application principale (des gros lots de fonctionnalités), l'appli principale utilisera quant à elle le module "default".
Donc je cherche à avoir ce genre d'organisation :
./modules/default/controllers/livre/IndexController.php (Class LivreController extends Zend_Controller_Action)
./modules/default/controllers/user/IndexController.php (Class UserController extends Zend_Controller_Action)
./modules/default/controllers/user/list/ListController.php
./modules/default/controllers/animaux/make/MakeController.php
./modules/default/controllers/animaux/edit/EditController.php
etc...
Et pour accéder à ces controllers :
http://monsite.com/livre/
http://monsite.com/user/
http://monsite.com/user/list/
http://monsite.com/animaux/make/
http://monsite.com/animaux/edit/
...
Mais je crois comprendre que les modules court-circuitent ce fonctionnement standard ?
Car si je tape une de ces URL :
Message: Invalid controller specified (livre)
Par contre si je crée le module livre et son controller ./modules/livre/IndexController.php (Class Livre_IndexController...), l'URL http://monsite.com/livre/ répond correctement.
J'ai lu plusieurs choses et j'ai vu qu'on peut déclarer des dossiers de controllers via le frontcontroller mais ça, ça me dérange, je ne veux pas avoir à faire ces ajouts à chaque fonctionnalités développées. Je voudrais que ça soit automatique. En gros si je créé ./modules/default/controller/machin/IndexController.php, je veux qu'il soit directement accessible via http://monsite.com/machin/
(Purée je sais pas si je me fais bien comprendre...)
Merci de votre aide.
Dernière modification par konichua (13-06-2012 15:11:43)
Hors ligne
L'archi doit être de cette façon :
racine/application/modules/livre/controllers/IndexController.php
racine/application/modules/livre/controllers/views/scripts/index/index.phtml
et il me semble qu'il faut ajouter ça ds ton application.ini :
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
Dernière modification par shadypierre (13-06-2012 16:25:18)
Hors ligne
En effet j'ai bien cette ligne dans application.ini.
Donc il est obligatoire de passer par l'arbo dont tu parles ?
Il n'est pas possible d'avoir cela avec les modules ?
/application/modules/default/controllers/livre/IndexController.php
/application/modules/default/views/scripts/livre/index/index.phtml
merci à toi.
Dernière modification par konichua (13-06-2012 18:21:30)
Hors ligne