Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'ai une petite question de conception.
La plupart du temps, lorsque l'on parle d'application par module sur le ZF, on parle de plusieurs répertoires qui contiennent le trio controler/model/view. Cela veut dire que l'on à des models différents pour chaque module.
Cependant, il y a souvent des models similaire entre plusieurs modules. L'accès à la base utilisateurs par exemple est toujours la même.
N'est-ce pas genant d'avoir ces models séparés. Comment centralisez vous les models similaires entre les modules ?
Merci d'avance.
Hors ligne
Perso, tout est centraliser, j'ai un répertoire /models uniques
Mes models étant déjà séparer
Hors ligne
Bonjour,
Rien ne t'empêche de créer un répertoire "model" au même niveau que "application" et de mettre tes classes dedans (en l'ajoutant dans le include_path).
Dans mes sites en général, je conserve le module "default" et je mets tous les éléments partagés dedans (modèles partagés, page d'accueil, page de login, gestion des membres, ACL,...).
A+, Philippe
Hors ligne
Salut,
Il existe plusieurs méthodes pour les arbos modulaires.
Celle de base :
application/ Controllers/ Models/ Views/ Modules/ module1/ Controllers/ Models/ Views/ module2/ etc. boostrap.php library/ public/ images/ scripts/ styles/ index.php
Dans cette dernière, c'est le dossier Models se trouvant dans application qui regroupent tous les models communs à tous les modules.
Après chacun trouve son intérêt ou non dans cette solution. De mon côté, j'ai décidé de sortir les modules du dossier application :
application/ Config/ Models/ modules/ module1/ Controllers/ Models/ Views/ module2/ etc. boostrap.php library/ public/ images/ scripts/ styles/ index.php
Dans ce cas là, les modules sont indépendants et utilises les models qui se trouvent dans application.
Mais tout dépend des cas de figures.
Par ex, j'ai du mettre en place un système de templates fonctionnant tous sur la même base. Mon dossier application contient donc les différents templates qui pourraient être considérés comme des modules, mais je possède aussi un dossier module regroupant chaque client et contenant leurs paramètres et éventuellement des controlleurs et des vues dans le cas où ils souhaitent avoir malgré tout du spécifique dans leur template.
application/ Config/ Models/ ModelFront/ model1.php model2.php etc. Template1/ Controllers/ Views/ Template2 Controllers/ Views/ etc. modules/ client1/ Config/ Controllers/ Views/ boostrap.php client2/ Config/ Controllers/ Views/ boostrap.php etc. Initializer.php library/ public/ client1/ images/ scripts/ styles/ index.php client2/ etc.
Donc ici, tous mes templates utilisent les mêmes models, puisqu'ils reposent tous sur le même fonctionnement.
Les clients sont des modules car certains clients souhaitent parfois du spécifique par rapport au template. Dans ce cas là, les mêmes vues sont copiées dans le dossier Views du module client et utilisées automatiquement en lieu et place des vues du template.
C'est un cas très spécifique. Le reste du temps mes projets reposent essentiellement sur la 2ème arbo ci-dessus, qui consiste à sortir les modules du dossier application et à utiliser le dossier Models du dossier application pour les models communs.
Je sais pas si c'est très clair
A+ benjamin.
Dernière modification par Delprog (16-01-2009 09:33:33)
Hors ligne
Merci à tous pour votre avis.
Personnelement, j'avais commencé le développement d'une application ZF il y a quelques mois en respectant cette arborescence :
application/ models/ bdd/ form/ modules/ module1/ controllers views/ scripts/ module2/ controllers views/ scripts/ config/ languages/ fr/ en/ library/ Zend/ Perso/ public/ images/ scripts/ styles
Comme vous le remarquez, je n'ai qu'un seul répertoire models. Tous mes modeles sont donc centralisés et en revenant dessus maintenant, je me rends que si je veux créer une autre application similaire et ajoutant quelques modules mais surtout en retirant ceux qui ne m'interresse plus, il sera difficile de le faire.
Je pense donc que je vais faire comme vous avez un répertoire model par module et un autre répertoire répertoire model pour les classes communes.
Petite question d'utilisateur. Je viens de télécharger la version d'essai de Zend studio for eclipse et je vois qu'il est possible d'insérer des items ZF. Cela créé directement les répertoires.
Est-il possible de changer le comportement du ZSFE lors de la création de ces items (pour les modules par exemple)? Est-il possible de créer d'autres items?
Je n'ai pas trouvé où je pouvais faire ceci.
Hors ligne