POO ORM Entité

Que retournez-vous ?

  • tableau

    Votes: 0 0.0%
  • collection

    Votes: 0 0.0%
  • recordset

    Votes: 0 0.0%

  • Total voters
    0
WRInaute passionné
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
 
WRInaute discret
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".
 
WRInaute accro
marchandeo a dit:
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).
 
WRInaute accro
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 dit:
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 ?
 
WRInaute accro
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 ^^
 
WRInaute passionné
spout a dit:
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 dit:
dorian53 a dit:
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)
 
Discussions similaires
Haut