CLASSE MYSQL BASÉE SUR LE MODÈLE CRUD

psykocrash Messages postés 240 Date d'inscription vendredi 14 juin 2002 Statut Membre Dernière intervention 17 mars 2009 - 8 mai 2007 à 19:17
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 - 11 mai 2007 à 10:31
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/42628-classe-mysql-basee-sur-le-modele-crud

codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
11 mai 2007 à 10:31
oui en effet c'est carrément plus logique :) et ca marche quand meme mieux (même au niveau maintenance par la suite !).

Merci à toi pour cette réponse :)

Bonne journée :)
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
10 mai 2007 à 15:28
Bon... pour en revenir à nos moutons... tu as effectivement eu un problème de méthodologie sur ce coup là... ce n'est pas à ta classe sql d'implementer le modèle CRUD cette dernière doit se contenter de gérer les opérations simple avec la base de données et le traitement du résultat des requêtes... et ce pour deux raison... .. .

-1- ce n'est pas son rôle de faire plus
-2- chaque table étant différente c'est se compliquer la vie que de vouloir faire gérer ça par une classe généraliste

Voici en gros comment moi je procède...

- classe d'abstraction SQL
| |
| - drivers pour chaque SGDB
|
- classe abstraite de gestion "CRUD" héritant de la classe SQL

ensuite toi tu utilise... par exemple...

- classe x pour gérer la table x héritant de ta classe "CRUD"
- classe y pour gérer la table y héritant de ta classe "CRUD"
- etc

les classes x et y déclarent la structure de la table pour laquelle elle sont faites ce qui permet à ta classe "CRUD" d'effectuer les opérations en fonction de cette structure... il semblerait que tu aille sur cette voie là avec la seconde source que tu as postée et c'est bien plus logique comme façon de faire... .. . ;o)

Voili voilou... .. .

@ tchaOo°
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
9 mai 2007 à 20:22
merci pour ton commentaire.
A propos de l'optimisation, en fait, je parle de l'optimisation vis a vis du modele crud, pas des requetes sql et du nombre de fonction appelée pour ce faire.
"Tu me répondais, alors que je ne m'adressais pas à toi, mais à Boujan" => Je ne pouvais pas savoir :/
"bon exemple pour apprendre la POO : ce à quoi je répondais que pour apprendre la POO, ta classe manquait d'abstraction." Je suis tout a fait d'accord avec toi.
"Ce n'est pas un bon exemple pour apprendre la POO" => oui je l'ai précisé ensuite
"J'adore comme tu prends des raccourcis... C'est puant de mauvaise foi." Le truc, c'est que j'ai tenté d'expliquer plusieurs fois mes raisons, a force la mauvaise foi commence(ait) à apparaitre.

"Par contre, pour un robot/script, ta classe peut fournir une API intéressant pour permettre de "construire facilement des requêtes. L'humain, dans l'histoire, se contente d'écrire un robot/script qui utilisera ta classe en fonction de ses besoins. De ce côté là, je pense vraiment qu'il y a quelque chose à faire." => merci :)

"T'es trop sur la défensive, tu as à la fois trop et pas assez confiance en toi." => Oui, c'est clair je suis sur la défensive, parce qu'a voir le nombre sources qui se font descendre (et yen a pour lesquelles je suis d'accord), je craignais qu'elle soit prise dans le lot, car je savais pertinement quel n'était pas performante (encore une fois, le probleme, c'est que j'aurai du poster ma source dans le forum avant de la mettre ici, au lieu de faire l'inverse (métaphore du vélo)). Si je l'ai posté, c'était juste pour montrer mon idée sur comment faire un modèle crud. Par contre non, je ne suis pas sur de moi du tout, sincèrement, sinon j'aurai dit quelque chose du genre "voici ma classe adapté à 100% pour le modèle Crud" ou un truc du genre.

"Sinon, de ce que j'ai vu, quand même, ton code est propre et clair. C'est un très bon point." => Merci c'est gentil.

Par ailleur j'ai bien lu tes remarques, comme celles de vous tous d'ailleur.

C'est vrai que c'est plus agréable de répondre à quelqu'un qui encourage, merci.
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
9 mai 2007 à 20:04
Salut,

Dis donc... T'aimes pas trop les commentaires... Fallait pas la poster, ta source.
Je vais revenir sur mes propos et sur les tiens.

"Il est vrai que toujours faire sa requete SQL, c'est assez contraignant quand la longueur du code s'y mele !

[...]
C'est pour cela que je propose ma classe MySQL optimisée ici dans une approche d'utilisation du modele CRUD."

Ce à quoi j'ai répondu (et je ne suis pas le seul) :
"- beaucoup de lignes de code"
(parce que je m'en cogne que ta classe fasse 500 lignes : elle en ferait 50 pour le même résultat, je dirais pareil... Beaucoup de lignes de code à l'utilisation)

Tu dis "ma classe MySQL optimisée". Optimisée, ça veut dire quoi pour toi ?
Pour moi, elle n'est pas optimisée, et ce, pour trois raisons, que j'ai déjà donné :
- beaucoup de lignes de code à l'utilisation (je précise maintenant, parce que tu dois pas savoir bien lire ce que j'écris)
- une absence totale de lisibilité de la requête pour le développeur
- et... des performances (certainement) catastrophiques
Mais je suis curieux de savoir ce que signifie pour toi "optimisée".

"Je rappel que si je met cette classe, c'est pour démarrer un travail collaboratif éventuel sur l'utilisation du Crud."

C'est bien et c'est tout à ton honneur. Seulement les critiques sont un début de travail collaboratif. Tu ne t'en rends peut-être pas compte. Tant pis pour toi.
Si tu veux que des gens se joignent à toi pour développer ton idée, il faut peut-être que tu commences par proposer une idée qui ne rebute pas tout le monde. Ou alors, ne t'étonne pas de recevoir des critiques négatives et aucune proposition d'aide.

"Pour l'abstraction, j'ai précisé mon idée en début de ligne que l'on ne pouvait pas réellement faire de classe abstraite en php 4"

LoL

Et tu nous dis qu'on ne sait pas lire ? Mais mon pauvre... Je vais te faire une explication de texte, comme au collège.
Tu me répondais, alors que je ne m'adressais pas à toi, mais à Boujan, qui parlait de bon exemple pour apprendre la POO : ce à quoi je répondais que pour apprendre la POO, ta classe manquait d'abstraction. Ce n'était pas une critique en soit, juste un fait, dans un contexte POO. Je ne suis pas un pro de la POO, mais de ce que j'ai pu apprendre en lisant des sources ici (notamment celles de FhX, que je cite à nouveau, ou de Kankrelune), en lisant la doc, en lisant des tutos, en écrivant des classes, c'est que ta classe n'est pas un "bon exemple pour apprendre la POO". Désolé.

Que tu aies fait une classe PHP4, c'est un fait, ce n'est pas à nous de le critiquer (sauf pour te faire remarquer que de nombreux hébergeurs proposent maintenant PHP5, que les possibilités sont bien plus étendues, etc). Je suis pas un pro, mais je ne suis pas un noob pour autant : je sais bien, merci de me le rappeler, qu'en PHP4, il n'y a pas d'abstraction possible.

"Malgré ca, vos commentaires parlent de performance, de "c'est inutile, comme d'hab !"."

J'adore comme tu prends des raccourcis... C'est puant de mauvaise foi.

"J'aimerai juste faire evoluer le débat sur une recherche alors au lieu des "c'est pas innovant", j'attends plus de vous des commentaires constructif pour trouver un compromis interessant sur le modèle crud... car c'est quand meme là l'origine de mon ajout."

Alors là, c'est à moi (encore une fois) de te demander si tu lis ce qu'on écrit, ou si tu réponds dans le vent ?

J'ai écrit :
"une réduction à néant de la lisibilité des requêtes que l'on exécute (à la limite pour fournir une API, faut voir, mais là, pour un humain, franchement...)"

C'est marrant, tu n'as pas contesté ce point : aucune lisibilité de la requête qu'on construit. Je pensais que la parenthèse t'apporterait quelque chose de constructif en terme d'utilisation... Pour un humain, je le répète, je pense que c'est franchement rébarbatif à utiliser, lourd, etc.
Par contre, pour un robot/script, ta classe peut fournir une API intéressant pour permettre de construire facilement des requêtes. L'humain, dans l'histoire, se contente d'écrire un robot/script qui utilisera ta classe en fonction de ses besoins. De ce côté là, je pense vraiment qu'il y a quelque chose à faire.

Donc non, je ne trouve pas que ta classe soit pourrie. Inutile, oui, parce qu'elle me parait beaucoup plus limitée que d'autres écrite en PHP5 (ou même certaines en PHP4) en terme de performance, d'ergonomie, de lisibilité, etc.

Le truc, c'est que faire de la recherche pure avec PHP, je crois que c'est inutile, parce que PHP est orienté pratique, pas théorie. Si tu veux conceptualiser, faire de la théorie, il ne faut pas faire de code PHP : il faut faire de l'analyse, des MCD et des MLD, voire même des MCT (je ne sais pas ce que ça donnerait dans ce cas précis), des algorithmes, ce genre de chose. Ce sera en plus beaucoup plus enrichissant pour tout le monde : tu fourniras une base théorique à partir de laquelle pourront découler des applications pour différents langages (PHP, ASP, JSP, Perl, Python, C++ et j'en passe) et différents SGBD(R) (MySQL, PostGreSQL, Access, Oracle, MSQL, et j'en passe encore).

Une dernière chose : t'es pas obligé de rappeler sans cesse que tu as été courtois, que tu as respecté la charte, insulté personne, etc. Je n'ai pas eu l'impression que quiconque te faisait un reproche de ce genre. T'es trop sur la défensive, tu as à la fois trop et pas assez confiance en toi.

Sinon, de ce que j'ai vu, quand même, ton code est propre et clair. C'est un très bon point. Si je devais chipoter encore un peu, je dirais que ce serait encore mieux s'il était documenté selon la norme de phpDoc. Mais bon...

Bonne continuation en tout cas.
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
9 mai 2007 à 18:21
"Maintenant pour revenir à ton travail, on va pas te dire "ouais c'est super" si on ne le pense pas" => je sais, et je suis tout a fait d'accord avec toi sur le fait qu'il est préférable de stopper le travail s'il mène nulle part.

"ça m'a appris a chercher PAR MOI MEME ce qui ne va pas" => J'en fait de même (la preuve est que j'ai trouvé une solution plus performante (réellement plus performante !)). C'est juste qu'en postant ici, je NE pensais PAS attendre des résultats en me tournant les pouces, je voulais l'avis de chacun (SUR LE MODELE CRUD).

"Ce ne serait pas te rendre service que de te mâcher le travail." => c'était pas le but et j'en suis conscient

"On ne monte pas une pente à vélo en lui tournant le dos et en pédalant à toute vitesse." => Jolie métaphore :)

"On n'est pas là pour prendre en compte ton humeur" => je suis quand même resté poli et fait du mieux pour m'expliquer quand meme ! J'ai évité plusieurs fois de partir dans une "engueulade" car je sais que ca ne sert à rien.

"Je ne cherche même pas à travailler sur une base qui est fausse." => Je sais, c'est pour cela que j'ai mis mon dernier post, comme tu le dit avec la métaphore du vélo, j'ai pédalé à l'envers, j'aurai du parler de cette idée dans le forum, et ensuite, éventuellement, en fonction de l'évolution de la requete, poster quelque chose dans les sources. C'est peut-etre pour ca que ces commentaires sont partis dans tous les sens, on s'est pas bien compris : J'ai PAS posté la classe pour montrer quelque chose de performant, innovant, etc, mais pour parler du sujet (et comme je l'ai dit, je l'ai fait dans le mauvais sens, j'aurai du en parler au préalable dans le forum). Méa culpa, mais j'esperais plus de compréhension de votre coté (encore une fois a propos du modèle pas de la classe), c'est ce qui à produit mes déceptions et mes réponses. Encore une fois, je savais avant de poster que ma classe n'était pas performante en soi, mais je voulais lancer le sujet du modèle CRUD pour en définir quelque chose d'interessant. Comme je l'ai dit lorsque j'ai posté la classe : "Donc voila, le but est bien sur de faire evoluer la notion de crud pour aboutir sur quelque chose de puissant et tres efficace. Biensur je n'ai jamais dit et je ne pense absolument pas un moment détenir la solution la plus efficace, ce qui est proposé ici n'est juste qu'une approche."
Personnellement j'utilise des classes plus simples et plus performantes pour mes travaux.

"Voila, bonne chance à toi dans ton travail." => Merci, pareillement.

Note aux administrateurs : Cette page n'a rien à faire dans les codes-sources (vu qu'elle devait plus appartenir au forum), il serait préférable qu'elle soit supprimée, car elle n'apporte rien de constructif, j'en suis conscient, et allourdit un travail. Merci
psykocrash Messages postés 240 Date d'inscription vendredi 14 juin 2002 Statut Membre Dernière intervention 17 mars 2009
9 mai 2007 à 17:50
Si je t'accordais un peu d'importance, j'aurai été déçu. Heureusement que ce n'est pas le cas. Dis toi que si on prend de notre temps pour nous farcir tes 500 lignes de codes, prendre le temps de faire un essaie et de comparer le résultat avec l'utilisation qu'on fait d'habitude de nos propres outils, vient pas nous dire qu'on se contente de lancer un commentaire inutile. La moindre des choses serait de prendre en considération le fait qu'on ai fait l'effort d'observer ton travail et de te donner notre avis à ce sujet, parce que c'est bien à ça que servent les commentaires.

Maintenant pour revenir à ton travail, on va pas te dire "ouais c'est super" si on ne le pense pas. On n'est pas là pour prendre en compte ton humeur : on te dit clairement et sans tourner autour du pot ce qu'il en est. Moi, après 9 années de programmation, je suis bien content quand des gars sur #programmation me disaient : laisse tomber, c'est de la mer** c'que tu fais. Et tu sais pourquoi ? parce que ça m'a permis de pas perdre mon temps, de concentrer ma réflexion sur le "pourquoi ils ont dit ça" et donc ça m'a appris a chercher PAR MOI MEME ce qui ne va pas. L'informatique est un domaine en constante évolution, ce qu'il faut apprendre, ce n'est pas un langage, ou une théorie, ou quoi que ce soit d'autre : il faut apprendre à apprendre, et par soit-même. Ce ne serait pas te rendre service que de te mâcher le travail.
Ne propose pas une base de travail à une communauté si tu ne prends même pas le temps de te dire : eh c'est vrai qu'après reflexion, je propose de faciliter l'accès aux bases de données mysql en multipliant par 6 le nombre d'opérations requises :/.
Tu veux mon avis ? le voici : Je ne cherche même pas à travailler sur une base qui est fausse. On ne monte pas une pente à vélo en lui tournant le dos et en pédalant à toute vitesse. Médite là dessus...

Voila, bonne chance à toi dans ton travail.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
9 mai 2007 à 17:09
t'as pas trop compris le sens de mon post... ce que je veux dire, c'est que ta classe a une vue restrictive du sql, ne m'en veut pas si je suis amoureux de mysql5... quand a ce que tu peux en fair :) peut-etre la porter sous php5 pour la construire comme un arbre de facon a gerer les requettes imbriquees : pouvoir passer une autre requette en from, ou en left join, ou inner join, ou comme champ d'un select etc... La tu ne geres que des jointures internes, et c'est une vision bien trop restrictive du mysql...

Tu pourrais par exemple prevoir un truc pour selectionner automatiquement une date au format francais, ou au format par default, ca peut etre une amelioration possible... faire une extraction de la structure de la base a l'install, et ensuite bosser avec...

Autre chose fun : faire la moitie de ca en interfaces, et classes abstraites pour pouvoir gerer du mysql, du postgre, etc....

Les classes d'abstractions sql ne m'ont jamais satisfaites, le modele que je te porpose plus haut reste inconvenable du cote des fonctions comme COUNT, des NOT IN, des choses du genre... c'est pourquoi je n'ai pas pris le temps (plusieurs dizaines d'heures seraient necessaires a un bon groupe de classes) de me faire une abstraction mysql... ca serait hyper beau, mais probablement trop complique pour des sites comme les miens (sauf projet ci dessus qui a malheureusement ete pense apres avoir ete concu, du fait de l'urgence du projet...)

Bref, j'ai pas dit que c'etait moche, que ca n'avait pas d'avenir, juste que dans l'etat actuel des choses, ca n'a aucune utilite, car un petit site peut se contenter de requettes simples, et un gros site devrait avoir quelquechose de beaucoup plus complet...
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
9 mai 2007 à 17:08
En fait après reflexion j'ai peut-être pas agit dans le bon sens : j'ai pensé posté cette fameuse classe pour donner une piste de réflexion, au lieu de ca je suis passé devant un jury qui m'a donné 0.
J'aurai peut-être du lancer l'idée sur le forum, et après un travail collectif (si ca existe), poster le résultat ici.
Maintenant j'ai posté la classe ici et pas dans le forum tout simplement pour avoir une coloration syntaxique qui est plus facile a voir et que j'avais prévu de modifier en fonction de l'évolution des commentaires.
(Note aux admins : ca pourrait être sympa d'integrer la coloration syntaxique dans les messages du forum)
Malheureusement au vue de vos réponses on en reste sur un mode archaïque d'évaluation de la personne sans chercher à comprendre la motivation de ce dernier ... joli boulot.

Ah ui et j'oubliais : Cette classe est nulle, Codefalse, t'es vraiment pas doué !
(post constructif, comme toujours)

*Note : J'ai toujours pris soin de respecter la charte et je suis resté "calme et courtois tout au long de [mes] échanges".
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
9 mai 2007 à 16:32
"Les éloges ne m'interessent pas"=> pas décu si on me dit "ton code est pourri"
"Je suis décu" => "Que personne (ou peux de gens) ne comprenne l'interet du post"
"personellement j'ai pas le temps pour ca" => je ne te demandais pas spécialement

et ca sera vraiment (mais alors vraiment :) ) tres utile... => j'aime vos mentalités

Tres constructif de poser des sources pour montrer ce que l'on est capable (je dit pas ca pour toi coucou747, avec tes deux liens)

Depuis le temps que je parcours codes-sources, on y voit plus souvent des "c'est nul", "c'est inutile", plus tot que des "tiens, essaye comme ca :" ou "pourquoi pas faire comme ceci ?"

Si c'était possible de demander aux administrateurs de supprimer cette source, je vous en serai reconnaissant ...
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
9 mai 2007 à 16:25
"Les éloges ne m'interessent pas"=> au moins t'es pas decu...
"Je suis décu" ah si...

"je croyais vraiment pouvoir travailler sur quelque chose d'interessant avec certains d'entre vous" personellement j'ai pas le temps pour ca, par contre si tu veux faire un editeur de requettes pour Kwrite ou emacs, on peut jouer ensemble... et ca sera vraiment (mais alors vraiment :) ) tres utile...
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
9 mai 2007 à 16:16
mais arglll vous lisez de temps en temps ??
Si je voulais faire une classe mysql pour montrer que je sais en faire une, j'aurai jamais montré celle-ci ! je suis bien conscient que 500 lignes de codes pour effectuer 4 requetes (en gros), c'est pas bon du tout. J'essayais juste d'ouvrir une voie de recherche sur quelque chose que je trouvais interessant, or, au vue des remarques, j'ai toujours l'impression d'être devant un jury. Je ne suis pas le genre de personne qui poste un fichier de 500 lignes juste pour dire "Zavez vu ? je sais faire ca moi, chuis balez et pas vous !". Les éloges ne m'interessent pas, je tentais juste de lancer un travail collaboratif... apparement en vain.

Je suis décu, je croyais vraiment pouvoir travailler sur quelque chose d'interessant avec certains d'entre vous ...
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
9 mai 2007 à 15:59
ma source qui utilise le plus de sql se trouve ici :
http://www.phpcs.com/codes/ERP-GESTION-ENTREPRISE-CAISSE-ENREGISTREUSE-FICHIER-CLIENT_42463.aspx
allez, juste pour rire un peu : http://files.codes-sources.com/fichier.aspx?id=42463&f=salon%5crequire%5cactions%5ccaisse_visionner.php
amuses toi bien a lire ces requettes, t'auras peut-etre mal au coeur, mais le sql c'est pas un simple select avec un group by de temps en temps... sauf si tu te limites au cadre d'un petit site marrant, ou tu mets des blagues dans une base sql pour en sortir une par jours...
Un select c'est hyper courant, mais si tu veux simplifier le travail d'un gars cote edition des requettes, c'est ton IDE que tu vas devoir retaper, ou alors tu vas devoir separer mysql et php presque totalement (vive mysql 5)
Bref, cette source est comme les autres, une surcouche a mes yeux inutile...
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
9 mai 2007 à 11:52
Je viens de trouver une meilleur piste sur comment faire, je travaille dessus dès que je peux et je vous en fait part assez rapidement. En effet, une fois qu'on a cerné le truc, c'est plus simple et plus performant à utiliser que mon idée !
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
9 mai 2007 à 10:54
Bonjour à tous
Pour l'abstraction, j'ai précisé mon idée en début de ligne que l'on ne pouvait pas réellement faire de classe abstraite en php 4 (avec un abstract) c'est pour cela qu'elle n'est pas ... abstraite.
Ensuite, je pensais avoir expliqué dans mon intro que cette classe était utilisé pour tenter une approche au modèle crud, je n'ai dit nulle part que ma classe était optimisée pour gagner du temps et être extrement rapide. Je suis conscient qu'appeler 5 fonctions voire plus pour une simple requete sql est beaucoup plus lourd qu'un simple mysql_query. Je ne cherche pas ici la performance, j'essaye juste d'ouvrir un champ de recherche en programmation sur un modèle que je trouve interessant.
Malgré ca, vos commentaires parlent de performance, de "c'est inutile, comme d'hab !".
J'ai l'impression que vous n'avez pas tout lu, juste le code, vous avez vu 500 lignes, pfoua ! et c'est tout. Je sais que ma classe n'est pas performante, mais j'attendais plus de votre part des reflexions du genre "tu vois, ton idée du modèle crud est fausse, tu perd en performance, ya trucmuchepseudo qui à tenté une approche différente et qui donne de meilleur résultat, tu peux aller voir ca sur cette page ...". Au lieu de ca, j'ai l'impression d'avoir proposé ma classe à un jury pour déterminer si sur les 50 classes mysql qui existent sur ce site, la mienne était la meilleur ou non.
Ce serait bien, pour une fois, de mettre vos appréciations de côté et se mettre ensembles pour travailler sur des choses plus constructives que des "c'est inutile", "ca sert à rien", "ca apporte rien du tout"...

Comme tu le dit Psykocrash, ma "classe n'apporte rien d'innovant". Ton commentaire non plus. Je me repete encore, mais j'esperais de vous (j'espere toujours) des commentaires pour travailler sur l'idée et faire évoluer une classe pour s'adapter a un modèle crud, pas pour avoir "beaucoup de code pour aucun gain d'efficacité/rapidité au final, je dirais même au contraire."

Neigedhiver, les sous-requêtes sont possibles en récupérant la requete grace à un select(true); Par contre les jointures, non, en effet. Ensuite pour les autres fonctions, je me suis arrêté sur ce que j'avais besoin sur le moment, mais il est toujours possible d'ajouter des fonctions afin d'y integrer des fonctionnalités toujours plus utiles, en effet.

Merci Boujan pour ton commentaire, mais c'est vrai que si tu cherche des exemples de classes en POO plus complexe pour bien evoluer, d'autres classes seront mieux que la mienne ; elle est vraiment simple.

J'espere que vous avez compris mon objectif. En aucun cas dans mon commentaire je n'ai insulté ou provoqué l'un d'entre vous, si c'est le cas, je m'en excuse.
J'aimerai juste faire evoluer le débat sur une recherche alors au lieu des "c'est pas innovant", j'attends plus de vous des commentaires constructif pour trouver un compromis interessant sur le modèle crud... car c'est quand meme là l'origine de mon ajout.
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
9 mai 2007 à 06:45
Comme exemple pour apprendre la programmation orienté Objet, il manque cruellement d'abstraction... Autant se tourner vers les sources de FhX qui sont quand même plus "strictes" du côté POO.
cs_boujan Messages postés 12 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 20 avril 2008
8 mai 2007 à 23:36
bonsoir,

moi je dit malgre ca bravo, si ce code n'apporte rien en terme de performance il est un bon example pour apprendre la programmation orirnté objet.
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
8 mai 2007 à 19:38
Salut,

Sans être aussi vif que psychocrash, je trouve effectivement que ta classe qu'elle nécessite beaucoup de lignes pour construire une requête, qui doit rester simple, tant qu'à faire (pas de jointure d'après ce que j'ai lu, pas de sous-requête, ...).
Je pense en plus, que de faire appel sans cesse à un objet est gourmand en ressources.

Petite question : ta classe permet-elle en plus d'utiliser des fonctions comme MAX(), MIN(), TIMESTAMP(), MD5(), etc ?
Gère-t-elle également les alias ?

Sincèrement, je ne vois pas (comme psychocrash) ce qu'apporte ta classe. Pour moi, elle apporte :
- beaucoup de lignes de code
- une réduction à néant de la lisibilité des requêtes que l'on exécute (à la limite pour fournir une API, faut voir, mais là, pour un humain, franchement...)
- a mons avis, beaucoup de ressources consommées (mais je ne suis pas catégorique sur ce point, il faudrai faire des tests... Même si le fait d'appeler 6 méthodes d'un objet contre 2 pour une classe "standard", y'a, en toute logique, pas photo...)
psykocrash Messages postés 240 Date d'inscription vendredi 14 juin 2002 Statut Membre Dernière intervention 17 mars 2009
8 mai 2007 à 19:17
$db->setRowsFT("Table1", "col1.1", "col1.2", "col1.3", ..);
$db->setRowsFT("Table2", "col2.1", "col2.2", "col2.3", ..);
$db->setTable("Table1", "Table2);
$db->setWhereFT("Table1", "condition1.1", "=", "condition1.2");
$db->setWhereFT("Table2", "condition2.1", "=", "condition2.2");
$db->Select();

C'est trop rébarbatif, il faut 6 opérations pour sélectionner quelques champs alors qu'une requête SQL et un mysql_query() c'est tellement plus simple. Désolé mais je trouve que ta classe n'apporte rien d'innovant, si ce n'est beaucoup de code pour aucun gain d'efficacité/rapidité au final, je dirais même au contraire...
Rejoignez-nous