Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 16-01-2009 00:23:10

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

Application par module. Gestion des models

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

 

#2 16-01-2009 09:21:45

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: Application par module. Gestion des models

Perso, tout est centraliser, j'ai un répertoire /models uniques
Mes models étant déjà séparer


----
Gruiiik !

Hors ligne

 

#3 16-01-2009 09:24:08

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: Application par module. Gestion des models

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


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#4 16-01-2009 09:28:46

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: Application par module. Gestion des models

Salut,

Il existe plusieurs méthodes pour les arbos modulaires.

Celle de base :

Code:

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 :

Code:

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.

Code:

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 smile


A+ benjamin.

Dernière modification par Delprog (16-01-2009 09:33:33)


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#5 16-01-2009 21:13:30

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

Re: Application par module. Gestion des models

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 :

Code:

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

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages