POO ORM Entité

Que retournez-vous ?

tableau
0
Aucun vote
collection
2
67%
recordset
1
33%
 
Nombre total de votes : 3


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2216
Inscription: 10 Avr 2005

POO ORM Entité

Message le Mer Mar 23, 2011 23:14

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

marchandeo
WRInaute discret
WRInaute discret
 
Messages: 110
Inscription: 18 Jan 2011

Re: POO ORM Entité

Message le Mer Mar 23, 2011 23:32

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
WRInaute accro
 
Messages: 8578
Inscription: 23 Nov 2005

Re: POO ORM Entité

Message le Mer Mar 23, 2011 23:40

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).


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2216
Inscription: 10 Avr 2005

Re: POO ORM Entité

Message le Lun Juil 11, 2011 16:55

D'autre avis sur la question svp ?


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Re: POO ORM Entité

Message le Lun Juil 11, 2011 17:24

Pareil que Usagi.


spout
WRInaute accro
WRInaute accro
 
Messages: 4382
Inscription: 14 Mai 2003

Re: POO ORM Entité

Message le Lun Juil 11, 2011 21:21

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.

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 ?


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Re: POO ORM Entité

Message le Mar Juil 12, 2011 1:52

Toute façon quand on sait que le processus n'est en général fait qu'une seul fois et que c'est mis en cache. On s'en tape un peu :P Après si il n'y a pas de cache c'est différent ^^


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2216
Inscription: 10 Avr 2005

Re: POO ORM Entité

Message le Mar Juil 12, 2011 10:36

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)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité