Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 28-08-2009 11:54:58

supertino7
Membre
Date d'inscription: 21-02-2009
Messages: 113

Question sur les modèles et objets métier

Bonjour,

je me posais comme souvent des questions sur les manières optimales de réaliser mes applications, et cette fois ma réflexion se porte sur la partie Modèle.

Le contexte est le suivant :

Mettons les controllers SujetController, et CommentaireController.
Nous avons les tables Sujets et Commentaires. L'accès à ces derniers se fait via des classes étendant Zend_Db_Table_Abstract, et les fichiers sont placés dans models/DbTable.

Je veux consulter un sujet. Je passe par l'action lireAction($id) de SujetController.
L'action instancie le modèle Sujet() et appelle sa méthode getSujet($id). Cette méthode instancie à son tour la table Sujets, et fait un fetchRow du sujet.

Bien.

Maintenant, je veux créer un sujet. Dans le controleur, dans l'action newAction(), une fois le formulaire validé etc... j'instancie le modèle Sujet(), et j'appelle la méthode insert($post) qui instancie à son tour la table Sujets etc...

Sauf que dans cette manière de procéder, je me rends compte que je perds tout l'aspect "objet" de la programmation.
Du coup, j'ai retouché mon modèle Sujet(), je l'ai étendu sur Zend_Db_Table_Row, j'ai ajouté ses propriétés $titre, $auteur, avec en __construct() ces paramètres. Ainsi on aurait plus qu'à appeler la méthode save() sur l'objet.

Mais je me pose plusieurs questions du coup.
Où s'effectuent du coup des méthodes du style find() ? Dans un autre modèle Sujet() ? parce que lorsque j'instancie l'objet, je ne peux pas lui affecter de titre et de sujet puisque c'est une recherche.
Pareil pour les méthodes à base de fetchAll()... d'où est ce qu'on commande ça ? Pas dans l'objet métier, c'est sur, me dis-je.

Ensuite pour sélectionner tous les commentaires d'un sujet, est ce que je dois partir sur un objet sujet(), et faire un ->getComments() ? ou plutot créer un objet Comments() et faire un findBySujet($id_sujet) ?

Voila, ça ira pour le moment.
il y a tellement de manière de faire en fait qu'on ne sait jamais laquelle est la meilleure.
Mais bon, PHP a énormément évolué, sur le plan objet, et je voudrais exploiter ses potentiels à fond.
Merci pour vos réponses.

Hors ligne

 

#2 28-08-2009 15:45:48

aelyta1
Membre
Lieu: Rouen
Date d'inscription: 29-06-2009
Messages: 98

Re: Question sur les modèles et objets métier

Tu devrais peut etre passer par des mappers
il y a eu plusieurs posts sur ce sujet, tu les trouveras en faisant une recherche sur le forum wink


veni, vidi, riendi
Vive les lapins-antilopes !

Hors ligne

 

#3 28-08-2009 16:01:49

supertino7
Membre
Date d'inscription: 21-02-2009
Messages: 113

Re: Question sur les modèles et objets métier

C'est effectivement maintenant que je comprends -enfin- l'utilisé d'un mapper smile

Par contre, ma 2ème question tient tjrs :

Pour extraire tous les commentaires d'un sujet, faut il le faire depuis le mapper Sujet, ou le mapper Commentaires ?

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