FLYDATABASE: CLASSE DE GESTION DES TRANSACTIONS BDD

cs_morpheus57 Messages postés 121 Date d'inscription vendredi 31 mars 2006 Statut Membre Dernière intervention 30 décembre 2010 - 8 mai 2007 à 13:35
Knolan Messages postés 79 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 18 juin 2007 - 26 mai 2007 à 20:06
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/42619-flydatabase-classe-de-gestion-des-transactions-bdd

Knolan Messages postés 79 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 18 juin 2007
26 mai 2007 à 20:06
Bon voila j'ai mis a jour la classe, je sais pas si des gens suivent l'évolution de ce code... mais au cas ou :)

Voila
Knolan Messages postés 79 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 18 juin 2007
13 mai 2007 à 13:48
Des que je sors la tete de mes partiels je me remet dessus, et merci pour tous les commentaires :)
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
13 mai 2007 à 08:54
Tien, pour une fois que je suis d'accord avec tout le monde ici!
En effet, l'idée d'intégrer les transactions est très bonne (preuve en est : je le fais depuis peu ;-)); mais en effet aussi, ta classe est très incomplète. Et puis ça manque d'abstraction. Et effectivement, le bench intégré à la méthode effectuant les requêtes, bof...je préfère utiliser une classe tierce pour ça, ou au pire, proposer une méthode de bench dans la classe.
Bref. Pour PDO, devriez quand même l'essayer, les kadors pas encore convaincus... ;-) Vous pourriez être très surpris. PDO a plus d'un tour intéressant dans son sac. Malgré ses défauts (faut le bon driver...! Sans quoi, on est limité).
Allez, encore un peu de courage pour sortir la classe d'abstraction de bdd parfaite (je viens peu en ce moment, mais j'ai vu que vous aviez mlis un sacré coup de collier sur les classes d'abstraction de bdd, ces temps-ci!) : vraiment abstraite...vraiment générique...gérant les exceptions...basées sur les itérateurs évidemment...gérant les transactions...les multitons...les caches...et légère, tant qu'à faire ;-)
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
10 mai 2007 à 01:30
FHX>>>>>Apache 5 ? Non.. Apache 2 et PHP5 :)
Ouups, désolé pour l'erreur, c'est effectivement php5 et non pas apache5 (mon clavier à fourché)...

Morpheus57>>>>mais je sais pas si t'as regardé le code de Knolan -> c'est du PHP5 :-)
j'avais vu :) mais son code, en l'état est "relativement" facile à modifier pour être portable sur du php4. Tandisque s'il avait été codé avec PDO, cela aurait été niet, nada, slitch...
Et pis c'est si bon de reinventer la roue, même si elle existe déja... ;)

(n'ayant pas php5, donc pas PDO, je me suis créé une petite classe perso que j'utilise dans mes scripts: http://www.phpcs.com/code.aspx?ID=42649)

Voili voilou
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
9 mai 2007 à 14:31
bah soit tu stocke le résultat en interne... la méthode query() ne renvoyant plus qu'un booléen... soit tu renvois la ressource du résultat après l'exécution de ta requête ce qui reste le mieux à faire si tu veux pouvoir traiter plusieurs résultats simultanément... ... .. .

@ tchaOo°
Knolan Messages postés 79 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 18 juin 2007
9 mai 2007 à 13:53
Merci pour toutes ces remarques :)

Je comptais justement intégrer par la suite des mysql_fetch_* & Co mais en fait je savais pas trop comment m'y prendre, pour que ce soit pratique.
Je vais y réfléchir et je posterai les modifications rapidement.

Merci encore
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
9 mai 2007 à 11:51
Moi perso concernant mysql je ne vois pas l'intérêt d'encapsuler les fonctions native de php si c'est juste pour y ajouter un timer lors de l'exécution de la requête... s'il faut développer un classe SGDB autant faire une classe d'abstraction sinon c'est de la perte de performance pour rien... mieux vaut faire du procédural dans ce cas là... d'autant plus que dans cette classe il n'y a pas de fonctions de traitement des résultats (mysql_fetch_* & Co) donc tu est obligé de repasser par le procédural pour faire le traitement ce qui est brouillon comme façon de faire... par contre l'idée d'y intégrer les transaction est plutôt bonne... ça manque à la plupart des classes SGDB... .. .

@ tchaOo°
webdeb Messages postés 488 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 31 mars 2009 4
9 mai 2007 à 11:02
Personnellement j'utilise PDO mais le problème de PDO c'est qu'elle n'est pas installée sur toutes les configs d'hébergement (mutualisés comme dédiés par défaut). C'est bien dommage.

Quant à ta classe, ce n'est pas si mal mais il manque beaucoup de choses. Par exemple :

- Comptage du nombre de résultats
- Comptage du nombre de lignes affectées
- Dernier ID auto incrémenté enregistré
- Possibilité d'extraire les résultats lignes à lignes ou tous d'un coup dans un tableau
- ...

++
cs_morpheus57 Messages postés 121 Date d'inscription vendredi 31 mars 2006 Statut Membre Dernière intervention 30 décembre 2010
9 mai 2007 à 09:32
Je voulais simplement tenir au courant notre cher Knolan que PDO existait et pourquoi pas l'utiliser. Maintenant effectivement chacun fait comme il veut mais alors pourquoi poster des sources ? Je pensais que c'était pour avoir des l'opinion des autres développeurs.

A mon avis PDO est très bien fait et mérite au moins qu'on s'y intéresse afin de ne pas passer à côté de quelques chose d'important.
De plus en ce qui concerne la remarque de Masternico, effectivement il faut PHP5 mais je sais pas si t'as regardé le code de Knolan -> c'est du PHP5 :-)
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
8 mai 2007 à 23:11
Apache 5 ?
Non.. Apache 2 et PHP5 :)
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
8 mai 2007 à 22:02
"PDO fait ça très bien et apporte l'abstraction de la base de donnée"
Encore faut-il avoir un serveur avec apache 5.0 minimum... sinon, pas de PDO... donc on est bien obligé de créer son propre moteur de connexion avec la base de donnée.
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
8 mai 2007 à 17:45
"PDO fait ça très bien et apporte l'abstraction de la base de donnée"
Chacun fait comme il veut :)

Depuis PHP 5.2.0, il a bien une classe DateTime qui existe, et pourtant j'utilise toujours la mienne parce que je la trouve plus soft/complète.

Moi pareil, PDO ne me sert à rien. J'ai ma propre classe et ca me suffit amplement :)
Knolan Messages postés 79 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 18 juin 2007
8 mai 2007 à 15:09
Salut,

Merci pour le commentaire, a ta remarque je répondrais 4 choses:
- Je ne connais pas PDO
- J'ai fait cette classe pour apprendre à utiliser les classes et les exceptions en PHP
- Je préfère avoir une ptite classe qui se limite a ce que je veux plutot qu'un gros machin sur lequelle j'ai aucune prise
- J'ai dit en préambule que l'abstraction de la base de données ne m'interessais pas

Merci quand même
cs_morpheus57 Messages postés 121 Date d'inscription vendredi 31 mars 2006 Statut Membre Dernière intervention 30 décembre 2010
8 mai 2007 à 13:35
Salut,

Je ne comprend pas trop l'intérêt de la chose : PDO fait ça très bien et apporte l'abstraction de la base de donnée
Rejoignez-nous