Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je début avec ZF et ça doit faire 3-4 jours que je scrute le web pour divers interrogations. J'ai opté pour une arborescence de comme celle-ci:
/root /application /default /login /panel /library /core <-- tout mon basard ;) index.php
Pour la partie admin, il y 2 solutions :
- soit connecté donc sur panel
- soit pas connecté donc sur login (logique me diriez vous !)
Mais le problème n'est pas là c'est dans mes "dossiers modulaire" (je reprends le langage de la doc ZF).
Dans mon index.php, je suis obligé de définir un par un la liste de mes modules comme suit :
$front = Zend_Controller_Front::getInstance ( ); $front->setControllerDirectory(array( 'default' => ROOT.S.'application/default/controllers', 'login' => ROOT.S.'application/login/controllers', 'panel' => ROOT.S.'application/panel/controllers' ));
Le souci est que je risque d'avoir plus que 3 modules dans la suite de mon développement. Je souhaite me créer une petite install de modules donc mettre dans mon fichier INI la liste ne serait pas dans mon cas, une excellente idée !
Avez-vous une idée sur, de quel manière je pourrais rendre dynamique cette partie de mon script ?
Et est-ce vraiment obligatoire de charger l'ensemble des modules ?
Merci de votre aide.
Dernière modification par nicko (26-05-2009 17:26:29)
Hors ligne
Je n'ai jamais fais ca mais ... si je ne me trompe, le module est surtout utile au moment du dispatch.
Hors tu as la possibilité d'enregistrer des plugins qui vont étendre Zend_Controller_Plugin_Abstract et (dans ton cas) définir la méthode dispatchLoopStartup qui s'exécute avant le dispatch.
Donc à ta place je ferai un plugin qui fait des addControllerDirectory en se basant sur un fichier ini ou une base de donnée.
http://framework.zend.com/manual/fr/zen … troduction
http://framework.zend.com/manual/fr/zen … rdirectory
Hors ligne
Merci pour cette réponse aussi rapide.
J'ai pas compris grand chose à ce que tu as dit, mais avec tes mots clés et les deux liens je pense que je vais m'en sortir.
je vais voir ça ...
Hors ligne
le module est surtout utile au moment du dispatch
Que veux tu dires par la. Pardonne mon ignorance mais je n'ai pas encore tout saisi de ZF
Hors ligne
Il y a moyen d'activer les modules en auto si cela peut t'être util. J'utilise ce code dans mon Bootstrap pour annoncer un répertoire qui contient tout mes modules, du coup pas besoin de les annoncer les uns après les autres :
<code>
protected function _initControllers()
{
$this->bootstrap('FrontController');
$this->frontController->addModuleDirectory(APPLICATION_PATH . '/modules');
}
</code>
Je n'ai pas re-essayé mais il me semble que la version 1.8.0 du ZF est buggée et ne permet pas d'activer les modules depuis le config.ini. C'est prévu par contre.
Hors ligne
Merci ça m'intéresse. Mais je pense que je n'est pas vraiment compris sur le principe des modules ...
Dites moi si je me trompe. Je vais prendre mon cas :
Je souhaite créer un admin avec le strict minimum. c'est a dire de quoi ce loguer, un panel de base et un installer.
L'installer me permettra d'ajouter des fonctionnalités supplémentaires à mon application.
Vous aller me dire un admin vide ne sert à rien, mais j'ai 3 sites que je souhaiterai un peu uniformiser ...
Voila comment je vois la chose:
Dans mon dossier application j'ai actuellement 3 modules (corriger si je n'emploie pas le bon terme), 4 avec l'installer :
/application /default /login /panel /installer <-- j'y suis pas encore
Actuellement le default me permet simplement de dire si je ne suis pas connecté et que l'url du site est de type :
www.exemple.com/
rediriger vers :
www.exemple.com/login
si connecter alors :
www.exemple.com/panel
Ensuite le dossier login et bien comme son nom l'indique, il logue et redirige vers panel
si je suis logué et que je tape une url de type www.exemple.com/login ça me redirige vers www.exemple.com/panel. Par contre pour le moment dans l'autre sens c'est pas encore bon mais ça c'est mon problème me direz vous
Plus tard, il y aura l'installer qui lui ajoutera autant de dossiers que de fonctionnalités. Par exemple la gestion de mes membres.
Il créera donc un dossier supplémentaire comme ci-dessous :
/application /default /login /panel /installer /gestionMembres <-- la fonctionnalité supplémentaire /controllers /models /views /scripts listUsers.php addUsers.php ...
Alors dans ma logique, pouvez-vous me dire si ma gestion est correcte où l'auriez-vous différemment ?
Hors ligne
Un module pour juste s'authentifier ça fait peut être beaucoup non ?
J'aurai mis un controller login dans mon module panel
Trop de module tue le module
Hors ligne
Oui, je me suis dit la même chose hier quand j'ai écris cela. Du coup je pense aussi qu'il est plus judicieux de mettre quelques œufs dans le même panier. lol
Ps: Promis je ne ferais plus de vannes pourris comme celle-ci
Hors ligne
Pages: 1