POO ORM Entité
8 messages
• Page 1 sur 1
-

dorian53 - WRInaute passionné

- Messages: 2216
- Inscription: 10 Avr 2005
POO ORM Entité
Bonjour,
Prenons un exemple : vous souhaitez retourner la liste des utilisateurs.
Vous créez une méthode (static par exemple), dans une classe "User".
Que retourner vous ?
- un tableau,
- une collection (d'objets),
- le recordset directement issu de la requête.
La collection semble vraiment être la solution la plus propre et maintenable, mais aussi la plus lourde.
Pourquoi parcourir le recordset pour créer un tableau manuellement à retourner alors que le code qui va appeler la méthode va re-parcourir ce même tableau (donc 2 parcours) ?
Comment vous y prenez-vous ? Pourquoi ?
Merci
Prenons un exemple : vous souhaitez retourner la liste des utilisateurs.
Vous créez une méthode (static par exemple), dans une classe "User".
Que retourner vous ?
- un tableau,
- une collection (d'objets),
- le recordset directement issu de la requête.
La collection semble vraiment être la solution la plus propre et maintenable, mais aussi la plus lourde.
Pourquoi parcourir le recordset pour créer un tableau manuellement à retourner alors que le code qui va appeler la méthode va re-parcourir ce même tableau (donc 2 parcours) ?
Comment vous y prenez-vous ? Pourquoi ?
Merci
- marchandeo
- WRInaute discret

- Messages: 110
- Inscription: 18 Jan 2011
Re: POO ORM Entité
Tout dépend de la logique générale de ton application. A priori je dirais comme toi une collection d'objets mais pour être cohérent cette collection ne serait pas retournée par la classe "User".
-

UsagiYojimbo - WRInaute accro

- Messages: 8578
- Inscription: 23 Nov 2005
Re: POO ORM Entité
marchandeo a écrit:Tout dépend de la logique générale de ton application. A priori je dirais comme toi une collection d'objets mais pour être cohérent cette collection ne serait pas retournée par la classe "User".
+1. En général je crée une classe que je préfixe avec List (ici UserList du coup) qui me renvoie une collection d'objet via l'utilisation de mysql_fetch_obj() (ou un wrapper équivalent).
-

spout - WRInaute accro

- Messages: 4382
- Inscription: 14 Mai 2003
Re: POO ORM Entité
J'utilise Cake (qui a généré la méthode automagiquement) qui renvoi un tableau :
http://book.cakephp.org/view/1017/Retrieving-Your-Data
Doctrine et Propel qui ont l'air assez répandu sont full objet.
Tu veux dire le parcours pour remplir les variables avec l'ORM (tableaux ou objets), et le second parcours dans la vue/template pour l'affichage ?
http://book.cakephp.org/view/1017/Retrieving-Your-Data
Doctrine et Propel qui ont l'air assez répandu sont full objet.
dorian53 a écrit:Pourquoi parcourir le recordset pour créer un tableau manuellement à retourner alors que le code qui va appeler la méthode va re-parcourir ce même tableau (donc 2 parcours) ?
Tu veux dire le parcours pour remplir les variables avec l'ORM (tableaux ou objets), et le second parcours dans la vue/template pour l'affichage ?
-

dorian53 - WRInaute passionné

- Messages: 2216
- Inscription: 10 Avr 2005
Re: POO ORM Entité
spout a écrit:J'utilise Cake (qui a généré la méthode automagiquement) qui renvoi un tableau :
http://book.cakephp.org/view/1017/Retrieving-Your-Data
Doctrine et Propel qui ont l'air assez répandu sont full objet.
Justement j'ai eu de gros problème de charge (mémoire et temps de traitement) avec Doctrine, c'est pour cette raison que je reviens à une gestion perso.
spout a écrit:dorian53 a écrit:Pourquoi parcourir le recordset pour créer un tableau manuellement à retourner alors que le code qui va appeler la méthode va re-parcourir ce même tableau (donc 2 parcours) ?
Tu veux dire le parcours pour remplir les variables avec l'ORM (tableaux ou objets), et le second parcours dans la vue/template pour l'affichage ?
Oui par exemple, ça peut donc même aller jusqu'à 3 boucles en effet.
1 boucle sur recordset qui retourne $var (fonction dans models)
1 boucle sur $var qui modifie $var ou construit $var2 (controller)
1 boucle sur $var/$var2 (vue)
8 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
