POO et DB - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : POO et DB (/showthread.php?tid=4598) |
POO et DB - NicoMSEvent - 19-02-2010 Je me mets (enfin) à la POO, je retravaille mon projet pour le transformer en full POO (qui a dit :impossible? ^^) C'est un certain boulot, mais les lignes de codes se multipliant, et arrivant tout doucement aux limites humaines du procédural, et aussi, voulant enfin me mettre a la POO (premier par vers ruby? p-e pas, il me manquerait un hébergeur ), j'ai décidé de faire le grand pas. Je connais déjà relativement bien la POO, et j'avais quelques question sur vos habitudes. Pour enregistrer des objets en DB, vous passez un objet DB a travers toutes vos classes, et chaque objet est responsable de sa propre sauvegarde en DB, ou vous avez un autre truc (variable globale que je trouve crade) ? (mon but serait, si c'est pas propre, d'éviter d'avoir dans chaque objet un paramètre "db") Edit : j'ai trouvé une excellente petite doc/tuto/cours sur le net en PDF. Si quelqu'un veut bien se donner la peine de regarder, ça parle de PDO (p-e une solution pour mon problème? ^^) RE: POO et DB - Anthor - 19-02-2010 En général, on utilise le pattern Singleton, et Adapter. De cette manière on récupère toujours la connexion courante. Et on peux changer facilement de type de base de données. EDIT: J'ai pas eu la motive de me plonger dans les 209 pages ^^ RE: POO et DB - NicoMSEvent - 19-02-2010 ok, j'ai vu brievement le pattern Singleton et Adapter (qui permet de ne lancer qu'une seule fois la connection, et qui permet d'utiliser a peu près n'importe que lSGBD), mais ça ne me dit pas si je dois faire mes appels SQL dans les objets (en passant l'objet DB en parametre ou en global?), ou autrement? Comme je n'ai pas vraiment d'expérience en PHP objet (orienté web), je ne vois pas trop comment mettre ça en place... un petit coup de pouce? histoire de me mettre sur la bonne voie... RE: POO et DB - Sephi-Chan - 19-02-2010 Tes instances de modèles (qui utilisent la BdD comme source de données) peuvent étendre une classe dont le constructeur se charge de récupérer l'Adapter (l'instance de la connexion). Et effectivement, tu fais ensuite tes appels à la base de données dans les méthodes de ton modèle. Sephi-Chan RE: POO et DB - Anthor - 19-02-2010 Effectivement, j'avais zappé cette partie là ^^ RE: POO et DB - christouphe - 19-02-2010 J'utilise la POO comme ceci, dite moi si j'ai faux: BDD <= userDao (description et stockage des informations) <= userFactory (fabrique mes objets User en lui passant les paramètres et la connexion) <= userManager (gère mes objets Users création/modification/suppression en passant la connexion ET les paramètres) Et en parlant de singleton, j'ai réussi à faire un singleton manager, par contre pour ma classe accédant à la BDD, comme elle hérite de PDO, j'ai une erreur si je mets le constructeur en "private", des solutions ? RE: POO et DB - pascal - 19-02-2010 (19-02-2010, 05:15 PM)christouphe a écrit : J'utilise la POO comme ceci, dite moi si j'ai faux: ça ressemble aux architectures du boulot tout ça ! Pour la connection, tu peux aussi regarder du coté de symfony, les DAO + formulaires liés fonctionnent bien en pratique. A+ Pascal RE: POO et DB - christouphe - 19-02-2010 je m'inspire du boulot pour mes projets personnels , d'ailleurs je viens de finir l'admin d'une table équipement pour mon futur jeu.. RE: POO et DB - Anthor - 19-02-2010 (19-02-2010, 05:15 PM)christouphe a écrit : Et en parlant de singleton, j'ai réussi à faire un singleton manager, par contre pour ma classe accédant à la BDD, comme elle hérite de PDO, j'ai une erreur si je mets le constructeur en "private", des solutions ? Code PHP :
RE: POO et DB - christouphe - 19-02-2010 il faut redéfinir toutes les méthodes PDO, car pour m'éviter cela, j'avais fait un héritage, ça me semblait logique. Code PHP :
|