16-12-2015, 01:01 AM
Le cache de données, je me méfie car cela voudrait dire que tu requête les mêmes objets en boucle (sinon, le cache ne sert pas à grand chose). Dans un code PHP, cela sent le codesmell.
Perso, utiliser un framework (même petit), c'est du travail en plus car de la maintenance en plus alors que la MaJ de PDO n'est pas à ma charge.
Les jointures deux fois sur le même objet, de base, j'évite (tout simplement car un SQL renvoie des données tabulaires, donc cela alourdit énormément le réseau). Le plus souvent, j'ai besoin d'un objet, je le récupère, et il va se compléter à la demande avec une liste d'autres objets.
Supposons que je veuille quand même le faire à toute force (mais bon, là encore, SQL n'est pas un langage adapté pour cela, c'est du XML/DOM qu'il faut là; d'ailleurs, renvoyer du XML, ce serait surement la piste vers laquelle j'irai), alors PDO me génèrerait la liste des Bean correspondant aux lignes de données (avec les données BeanObjet1+BeanObjet2), je passerai ce bean en paramètre à une FactoryObjet1, qui se chargerait d'instancier Objet1 ou de me renvoyer une l'instance Objet1 qu'elle a en mémoire (ou qu'une autre classe, peut-être statique, a; ce pourrait être la classe Objet1 justement).
Je mets donc la logique d'unicité hors de la logique de lecture de la BDD. Cela me permet de conserver l'unicité de l'objet que j'appelle $factoryObjet1->instanciateFromPdoBean(...) ou $factoryObjet1->instanciateFromId(...).
Perso, utiliser un framework (même petit), c'est du travail en plus car de la maintenance en plus alors que la MaJ de PDO n'est pas à ma charge.
Les jointures deux fois sur le même objet, de base, j'évite (tout simplement car un SQL renvoie des données tabulaires, donc cela alourdit énormément le réseau). Le plus souvent, j'ai besoin d'un objet, je le récupère, et il va se compléter à la demande avec une liste d'autres objets.
Supposons que je veuille quand même le faire à toute force (mais bon, là encore, SQL n'est pas un langage adapté pour cela, c'est du XML/DOM qu'il faut là; d'ailleurs, renvoyer du XML, ce serait surement la piste vers laquelle j'irai), alors PDO me génèrerait la liste des Bean correspondant aux lignes de données (avec les données BeanObjet1+BeanObjet2), je passerai ce bean en paramètre à une FactoryObjet1, qui se chargerait d'instancier Objet1 ou de me renvoyer une l'instance Objet1 qu'elle a en mémoire (ou qu'une autre classe, peut-être statique, a; ce pourrait être la classe Objet1 justement).
Je mets donc la logique d'unicité hors de la logique de lecture de la BDD. Cela me permet de conserver l'unicité de l'objet que j'appelle $factoryObjet1->instanciateFromPdoBean(...) ou $factoryObjet1->instanciateFromId(...).