Voilà je travaille sur l'architecture de mon site et j'en suis à l'épineux problème des DAOs. Je voudrais partir sur une base aussi cohérente que possible, aussi j'ai besoin de vos conseils
Mon architecture est un pseudo MVC. Pseudo car en réalité Vue et Contrôleur ne sont pas objets: le contrôleur est du code procédural qui récupère les bonnes données et inclue la vue correspondante, suivant la situation. De ce côté ce n'est certes pas très catholique mais ça ne me pose pas de problème.
Mon modèle lui est parfaitement objet. Il est composé de classes métiers, qui interagissent avec les DAO au moyen de TO (Transfert Objet, ou DTO ou VO si vous préférez). Jusque là pas de problème. Ce qui m'ennuie c'est que je n'ai pas trouvé de moteur de DAOs qui me convienne en PHP, je dois donc tout me taper à la main.
Et là question: comment gérer les requêtes à base de jointures. Ou plutôt, où les gérer?
Prenons un exemple simple, on a une table "joueur" et une table "ville", avec une clé étrangère id_joueur dans "ville". J'ai un DAO par table, normal. Disons que je veux récupérer la liste de tous les joueurs associés avec le nom et le lieu de leur ville (infos dispos dans la table ville). Qui se charge de cette requête?
Le DAO de la table "joueur"? le DAO de la table "ville"? Un nouveau DAO spécifique à cette table virtuelle (jointure)?
Dans tous les cas je devrai créer un TO spécifique.
Voilà je suis un peu perdu, sans le support d'un framework qui se charge des DAOs. Je me doute bien que la réponse qui vous vient est "sers toi d'un framework", mais si j'ai décidé de ne pas en utiliser un, c'est justement pour progresser sur ce type de questions techniques ^^
Mon architecture est un pseudo MVC. Pseudo car en réalité Vue et Contrôleur ne sont pas objets: le contrôleur est du code procédural qui récupère les bonnes données et inclue la vue correspondante, suivant la situation. De ce côté ce n'est certes pas très catholique mais ça ne me pose pas de problème.
Mon modèle lui est parfaitement objet. Il est composé de classes métiers, qui interagissent avec les DAO au moyen de TO (Transfert Objet, ou DTO ou VO si vous préférez). Jusque là pas de problème. Ce qui m'ennuie c'est que je n'ai pas trouvé de moteur de DAOs qui me convienne en PHP, je dois donc tout me taper à la main.
Et là question: comment gérer les requêtes à base de jointures. Ou plutôt, où les gérer?
Prenons un exemple simple, on a une table "joueur" et une table "ville", avec une clé étrangère id_joueur dans "ville". J'ai un DAO par table, normal. Disons que je veux récupérer la liste de tous les joueurs associés avec le nom et le lieu de leur ville (infos dispos dans la table ville). Qui se charge de cette requête?
Le DAO de la table "joueur"? le DAO de la table "ville"? Un nouveau DAO spécifique à cette table virtuelle (jointure)?
Dans tous les cas je devrai créer un TO spécifique.
Voilà je suis un peu perdu, sans le support d'un framework qui se charge des DAOs. Je me doute bien que la réponse qui vous vient est "sers toi d'un framework", mais si j'ai décidé de ne pas en utiliser un, c'est justement pour progresser sur ce type de questions techniques ^^