FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 29 déc. 2006 à 20:55
vi mais chui en train de la refaire (encore et encore... j'ai trouvé des trucs interessants OO :p)
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 29 déc. 2006 à 16:49
Comme mfaraday à la différence que je ne pense pas que créer un attribut de class soit utile
if(!in_array($type, array('assoc','array'...))
Mais si tu veux que cette méthode ne soit pas accessible en public la mettre en private ou en protected est effectivement la meilleur solution... .. .
Concernant l'abstraction du moteur tu trouvera quelques bon exemple sur ce site... je pense notament à la class de FhX et à celle de Malalam qui seront des bonnes bases sur lesquelles t'appuyer... .. .
@ tchaOo°
cs_mfaraday
Messages postés144Date d'inscriptionvendredi 18 avril 2003StatutMembreDernière intervention 4 janvier 2010 29 déc. 2006 à 16:08
Salut
Pour la remarque 1 de kankrelune, pas besoin de modifier grand chose (enfin je pense)
Tu fais un $fetch_method = array ('assoc', 'array',...);
et dans ta fonction tu fait un !in_array
# public function fetch($type='array')
# {
# if(!in_array($type, $this->fetch_method))
# {
# return false;
# // ou tu généres un message d'erreur un truc genre throw new exception mais la je
# // peux pas t'aider :)
# }
# else
# {
# // Le reste de ta fonction
# }
# }
Voila j'espère avoir pu t'aider :)
Flo
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 29 déc. 2006 à 15:23
Pour ce qui est d'abstraire la classe, je suis d'accord... C'est pour ça que je disais :
"Si quelqu'un pense que le code gagnerait à devenir portable pour d'autres moteurs de bdd, avec classes abstraites et tout le tralala, je suis preneur, moi, j'y connais pas grand chose en POO."
Et je le répète, je suis pas développeur de formation, la POO, je découvre doucement...
Cependant, je ne vois pas en quoi le traitement est alourdi... Je suis preneur d'explications.
Kankrelune : "-1- tu ne vérifie pas que $type est valide si je fais $type = 'pwet' ça donne quoi ?"
Effectivement... Il ne m'était pas venu à l'idée qu'on puisse appeler fetch('pwet')... Si je passe la méthode en private, ça permet de bloquer un appel direct non ? Est-ce que c'est une solution, ou bien vaut-il mieux virer l'alias et faire des fonctions distinctes fetch_row et fetch_array, quitte à répéter du code ?
Kankrelune : "-2- tu fais ton num rows dans le for (200 résultats = 200 num rows)... il faut le faire avant et affecter le résultat à une variable"
Alors là, mea culpa... Je suis d'ordinaire le premier à faire attention à ça, et puis là, j'avais la tête ailleurs... C'est une bête erreur d'étourderie, merci de l'avoir signalée.
Merci pour ces commentaire qui me permettent d'avancer.
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 27 déc. 2006 à 16:09
Le concept n'est pas bon... il est inutile d'encapsuler dans une class des fonction SGDB si ce n'est pas une class d'abstraction... tu alourdis le traitement pour rien... essaye de la modifier pour faire une class d'abstraction SGDB et là ta class prendra tout son interet... .. .
Sinon je n'ais pas regardé en détail le code je le ferais plus tard mais ça à l'air pas mal... l'idées des requetes via un fichier xml est très bonne... .. .
-1- tu ne vérifie pas que $type est valide si je fais $type = 'pwet' ça donne quoi ?
-2- tu fais ton num rows dans le for (200 résultats = 200 num rows)... il faut le faire avant et affecter le résultat à une variable
@ tchaOo°
cs_mfaraday
Messages postés144Date d'inscriptionvendredi 18 avril 2003StatutMembreDernière intervention 4 janvier 2010 27 déc. 2006 à 13:17
Salut.
Personnellement, pour ce que j'en ai vu, j'aime assez. J'ai juste survolé ton code.
J'aime bien l'utilisation du XML pour stocker le texte de tes requêtes souvent utilisées.
29 déc. 2006 à 20:55
29 déc. 2006 à 16:49
if(!in_array($type, array('assoc','array'...))
Mais si tu veux que cette méthode ne soit pas accessible en public la mettre en private ou en protected est effectivement la meilleur solution... .. .
Concernant l'abstraction du moteur tu trouvera quelques bon exemple sur ce site... je pense notament à la class de FhX et à celle de Malalam qui seront des bonnes bases sur lesquelles t'appuyer... .. .
@ tchaOo°
29 déc. 2006 à 16:08
Pour la remarque 1 de kankrelune, pas besoin de modifier grand chose (enfin je pense)
Tu fais un $fetch_method = array ('assoc', 'array',...);
et dans ta fonction tu fait un !in_array
# public function fetch($type='array')
# {
# if(!in_array($type, $this->fetch_method))
# {
# return false;
# // ou tu généres un message d'erreur un truc genre throw new exception mais la je
# // peux pas t'aider :)
# }
# else
# {
# // Le reste de ta fonction
# }
# }
Voila j'espère avoir pu t'aider :)
Flo
29 déc. 2006 à 15:23
"Si quelqu'un pense que le code gagnerait à devenir portable pour d'autres moteurs de bdd, avec classes abstraites et tout le tralala, je suis preneur, moi, j'y connais pas grand chose en POO."
Et je le répète, je suis pas développeur de formation, la POO, je découvre doucement...
Cependant, je ne vois pas en quoi le traitement est alourdi... Je suis preneur d'explications.
Kankrelune : "-1- tu ne vérifie pas que $type est valide si je fais $type = 'pwet' ça donne quoi ?"
Effectivement... Il ne m'était pas venu à l'idée qu'on puisse appeler fetch('pwet')... Si je passe la méthode en private, ça permet de bloquer un appel direct non ? Est-ce que c'est une solution, ou bien vaut-il mieux virer l'alias et faire des fonctions distinctes fetch_row et fetch_array, quitte à répéter du code ?
Kankrelune : "-2- tu fais ton num rows dans le for (200 résultats = 200 num rows)... il faut le faire avant et affecter le résultat à une variable"
Alors là, mea culpa... Je suis d'ordinaire le premier à faire attention à ça, et puis là, j'avais la tête ailleurs... C'est une bête erreur d'étourderie, merci de l'avoir signalée.
Merci pour ces commentaire qui me permettent d'avancer.
27 déc. 2006 à 16:09
Sinon je n'ais pas regardé en détail le code je le ferais plus tard mais ça à l'air pas mal... l'idées des requetes via un fichier xml est très bonne... .. .
par contre ça c'est pas beau...
$fetch_function = 'mysql_fetch_' . $type;
$rowset = array();
for ($i=0 ; $i < $this -> num_rows() ; $i++)
-1- tu ne vérifie pas que $type est valide si je fais $type = 'pwet' ça donne quoi ?
-2- tu fais ton num rows dans le for (200 résultats = 200 num rows)... il faut le faire avant et affecter le résultat à une variable
@ tchaOo°
27 déc. 2006 à 13:17
Personnellement, pour ce que j'en ai vu, j'aime assez. J'ai juste survolé ton code.
J'aime bien l'utilisation du XML pour stocker le texte de tes requêtes souvent utilisées.
Flo
Note : 8/10