Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
J'aimerais savoir si, dans le cas d'une application basée sur une architecture modulaire, il est possible de créer un genre de fichier "bootstrap" similaire à celui appelé pour configurer l'application, mais qui serait plutôt charger de préparer un environnement (constantes, includes, objets globaux, etc...) propre à chaque module.
Merci d'avance
Hors ligne
quelle étrange idée.
tu peux agir sur le front contrôleur avant le dispatching pour charger les constantes le conf et tout le tralala sans avoir à faire plusieurs bootstraps.
pour ma part j'ai agit sur la classe Zend_Contrôleur_Action
La doc dit que toutes les contrôleurs doivent dériver de cette classe. mais rien n'interdit de mettre des classes intermédiaires.
pour ma part j'ai donc les classes suivantes.
Zend_Controller_Action
Fast_Controller_Action etends Zend_Controller_Action
Application_Controller_Action etends Fast_Controller_Action
ou
ModuleX_Controller_Action etends Fast_Controller_Action
du coup je peux redéfinir le pré et le post dispatch où je veux
dans Fast cela me permet d'ajouter une fonctionnalité à toutes mes applications (capitalisation)
Application permet de jouer sur tous les contrôleurs du module par defaut de l'application.
ModuleX Permet de jouer sur tous les contrôleur du module
mais il est aussi possible de redéfinir pre et post dispatch dans chaque côntrolleur.
en jouant sur la hiérarchie des classes il est possible d'avoir Zend_Controller_Action puis une classe pour toute l'application puis une par module de l'application.
ainsi pas besoin de faire des bricolages tu charge et définit les éléments que tu veux dans le contexte que tu veux.
A+JYT
Hors ligne
Bonjour Sekajin
Merci pour cette belle explication, je vais essayer de la mettre en pratique de ce pas.
Mon étrange idée témoigne en effet d'une mauvaise connaissance du framework, j'essaie d'y remédier petit à petit, notamment grâce à des messages comme le tiens
Merci encore, a+
Hors ligne
Hello,
Après m'être plongé dans cette solution, il me reste :
un point nébuleux :
Je n'ai pas réellement saisi la différence entre Fast_Controller_Action et Application_Controller_Action, mais c'est certainement parce que je n'ai eu l'occasion que de travailler sur des projets de petite ampleur qui ne contenaient chaque fois qu'une seule application. J'imagine qu'on pourrait avoir plusieurs applications distinctes qui fonctionneraient sur un même serveur avec un seul framework.
Et une petite question d'ordre pratique :
Ou est-il préférable de ranger les classes intermédiaires ? Dans models, controllers ou directement dans les répertoires du framework ?
Un grand merci d'avance !
Hors ligne
Salut Amnesiak,
La classe Fast_Controller_Action de Sekaijin est la classe générale de tous tes controllers de tous les modules.
Alors que la classe Application_Controller_Action est la classe principale tous les controllers d'un module, en particulier celui par défaut.
Mais tu dois la définir autrement pour un module en particulier, en mettant le nom de ton module comme préfixe, comme te l'a indiqué Sekaijin.
Ex : ModuleXX_Controller_Action sera la classe controller de tous les controllers de ton module "ModuleXX"
Pour mieux comprendre cela, il faut étudier l'architecture du framework, ça aide bcp.
Pour ce qui est du rangement, pour ma part je mets ça dans ma librairie.
Cordialement, Azema.
Hors ligne
Pages: 1