Que peut apporter une classe MySQL ? - 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 : Que peut apporter une classe MySQL ? (/showthread.php?tid=2013) |
Que peut apporter une classe MySQL ? - Sephi-Chan - 14-11-2007 Salut à tous, J'aimerai discuter de l'intérêt des classes pour utiliser MySQL. Vous noterez que je parle bien des classes pour MySQL, et pas SQL de manière générale. Je ne veux donc pas parler des classes d'abstractions de SGBD qui sont à mon sens inutiles à un jeu par navigateur. Quelles sont donc les fonctionnalités que l'on peut attendre de telles classes ? Sephi-Chan RE: Que peut apporter une classe MySQL ? - Plume - 14-11-2007 Bon, comme le débat est - comme les autres - parti de nos conversations, je vais essayer d'exposer mon point de vue, ou du moins ce que j'arrive à me rappeler des intérets. Note : Evidemment, dans ma classe, y a de l'abstraction parce qu'à l'origine je devais prévoir les changements de SGBD .. Mais bon, j'vais pas pouvoir débattre là dessus, c'est sortir du sujet. Selon moi, d'une première approche, ça simplifie plusieurs méthodes. Un gain de temps dans le développement - après que la classe ait été développé, bien sûr. Et tu l'as bien vu de toute façon et tu es d'accord avec moi. Après avoir fait : Code PHP :
Code PHP :
J'ai aussi grâce à la classe créé des méthodes - un peu étrange après coup - mais utile comme parse_params() ou autre. A ce moment là, j'suis parti du fait que quelques soit le SGBD, même s'il ne change pas, c'est un objet, donc tout le reste doit rentrer dans cette optique. A plus tard quand la mémoire me reviendra ^^ ~L~ RE: Que peut apporter une classe MySQL ? - Zamentur - 14-11-2007 Moi je trouve çà super utile! J'en ai fais une pendant la beta de Ragol, aujourd'hui je le regrette pas Comme je l'expliquer sur le topic "[POO] Classe InterfaceSQL : Conseillez moi" , j'ai mis en place une methode extract_one qui permet de recuperer en une ligne la premiere ligne d'une requete SQL Code PHP :
Code PHP :
Plus tard dans le meme esprit j'ai mis au point d'autre trucs du meme style comme extract_ladata Code PHP :
Code PHP :
Et puis j'y ai mis aussi une fonction d'erreur personnaliser relier directement à ma fonction de gestion d'erreur ce qui me permet d'avoir des statistiques sur les erreurs et ainsi corriger les erreurs les plus recurentes... Et bien entendue là c'est qu'un petit exemple, mais on peut aussi faire des fonction qui serve à la selection à la mise à jour etc... Et y inclure des option de securité, comme par exemple vérifié qu'il n'y a pas de sql crossing dans les variables Et çà peut se faire 2 ans après que la classe à été créé et utilisé, car il suffit de modifier les methodes et non d'aller dans tout les bouts de code faire des modifs... Voilà déjà à mon sens quelques argument justifiant l'emploi d'une tel classe. RE: Que peut apporter une classe MySQL ? - Loetheri - 14-11-2007 La définition de ta fonction extract_one a, je suppose, un LIMIT caché ? Je reste très sceptique par rapport à l'utilisation que vous faites d'une telle classe. Quand je vois les classes de LeX, je trouve qu'il s'agit d'une sur-couche assez ... inutile. Maintenant, je sais que cela arrive qu'on change de base de données mais cela arrive-t-il si souvent ? (naholyr a parlé de ce cas lors de la discussion sur les FrameWorks ... et je crois que cela lui était arrivé une fois). Que va-tu gagner ? Quoi qu'il en soit, tu devras changer les classes que tu utilises. Donc d'office faire un trouver/changer. Tu en feras un et moi 6 environ. J'irai même peut-être plus vite si j'utilise un bon outil. Pour moi, une classe/série de fonctions de BdD est utile si tu implémentes des fonctionnalités te permettant réellement d'aller plus vite, d'éviter de faire des trucs rébarbatifs. Cela dit, pour ta fonction d'erreur, c'est bien tant que tu développes mais elle n'est pas une fonction de production. RE: Que peut apporter une classe MySQL ? - Plume - 14-11-2007 Bon, c'est certain qu'il y a des choses possiblement superficielle, telle que : Code PHP :
~L~ [EDIT] Citation :LoetheriMouerf ! RE: Que peut apporter une classe MySQL ? - naholyr - 14-11-2007 Si on utilise le design pattern «factory» il n'y a absolument pas besoin de changer de classe. L'utilité d'utiliser la POO est toujours la même : si on compte maintenir une application plusieurs années, et/ou réutiliser du code dans plusieurs projets différents, utiliser des couches d'abstraction sous forme de classes me paraissent être une nécessité : - pour l'organisation du code (ne serait-ce qu'en considérant une classe comme un «namespace») - pour l'évolutivité des classes grâce à l'héritage et aux design patterns les plus communs (factory et singleton) - pour avoir une API claire (et la doc qui va avec coulera toute seule) Si ces arguments ne te parlent pas, je pense que la meilleure chose à faire est de... laisser faire Lex, il a les bonnes cartes en main En revanche la vraie question à se poser est pourquoi développer sa propre couche d'abstraction alors qu'il en existe des déjà faites qui ont fait leurs preuves en terme de performances, de robustesse, etc... ? En POO, le maitre mot est réutilisabilité, réinventer la roue est déjà une erreur. Utiliser une classe pour l'accès à la BDD, oui ! L'écrire soi-même, non ! RE: Que peut apporter une classe MySQL ? - Shiwa - 14-11-2007 Personnellement j'ai repris une classe toute faite trouvée sur je ne sais plus quel site. Ce que j'aime beaucoup, c'est qu'elle contient dans un fichier à part les informations de connexion, je n'ai donc pas de mysql_connect qui trainent partout. Double avantage : les mots de passe/login sont mis à part dans un répertoire protégé et lorsque je transfère des fichiers testés localement avec wamp vers le serveur, je n'ai pas à les modifier partout. RE: Que peut apporter une classe MySQL ? - Sephi-Chan - 14-11-2007 Shiwa a écrit :Personnellement j'ai repris une classe toute faite trouvée sur je ne sais plus quel site.C'est là qu'on apprécie l'utilisation d'une page appelante du genre index.php?p=mapage. D'après vos interventions, il n'y a pas d'avantage à utiliser une classe... Sephi-Chan RE: Que peut apporter une classe MySQL ? - Sephi-Chan - 14-11-2007 Oui, c'est le seul avantage que j'ai pu trouver. C'est bien une simple question d'organisation et non d'utilité "technique". Sephi-Chan RE: Que peut apporter une classe MySQL ? - Plume - 14-11-2007 Citation :En revanche la vraie question à se poser est pourquoi développer sa propre couche d'abstraction alors qu'il en existe des déjà faites qui ont fait leurs preuves en terme de performances, de robustesse, etc... ? Comme vu avec Sephi en privé, j'préfère encore faire mon boulot que je réutiliserais à partir du moment où l'existant est bien trop lourd pour ce que j'utilise .. ~L~ |