Teclis01
Messages postés1423Date d'inscriptionmardi 14 décembre 2004StatutMembreDernière intervention29 décembre 20124 13 janv. 2009 à 14:22
Euh je viens juste de voir tes remarques et euh je sais pas pq je fais comme ça...
Je suis en train de préparer une nouvelle mouture avec notamment les FK. Je me penche sur ta suggestion juste après :)
cs_dorian91
Messages postés41Date d'inscriptionmardi 3 octobre 2006StatutMembreDernière intervention15 mars 2009 10 janv. 2009 à 01:07
Euh en fait j'ai du halluciner car tu utilise des requetes prepare (dsl fatigué ^^)
cs_dorian91
Messages postés41Date d'inscriptionmardi 3 octobre 2006StatutMembreDernière intervention15 mars 2009 10 janv. 2009 à 01:04
Re salut
Une autre petite suggestion pour tes requetes PDO utilise des requetes préparé comme ca tu evite les injections sql
A+
cs_dorian91
Messages postés41Date d'inscriptionmardi 3 octobre 2006StatutMembreDernière intervention15 mars 2009 9 janv. 2009 à 12:12
Salut,
J'ai une petite suggestion quand tu génère la classe modele pourquoi ne fais tu pas une classe abstraite (Ex : abstract Crud) qui contient toutes les méthodes et tu fais etendre ta classe modele. Ca évite la redondance de code au pire tu génère juste le constructeur qui passe les paramètres qui faut a la classe Crud
Sinon j'ai pas encore testé je te dis mon avis apres mes test
A+
Teclis01
Messages postés1423Date d'inscriptionmardi 14 décembre 2004StatutMembreDernière intervention29 décembre 20124 4 janv. 2009 à 23:41
La prochaine release arrive bientôt !!! :)
Juste pour savoir si ça interesse qqun ou si ya des erreurs ou des choses mal pensées/mal faites dites le moi ça serait sympa...
Teclis01
Messages postés1423Date d'inscriptionmardi 14 décembre 2004StatutMembreDernière intervention29 décembre 20124 17 déc. 2008 à 22:37
Au secoursssss la prévisualisation met à jour sans mon avis :/
La mise en page du texte était degeu je l'ai passée dans l'explication de la source en ajoutant le date histoire d'avoir un espèce de versionning Au zecoursss les zadmineu >_<
Teclis01
Messages postés1423Date d'inscriptionmardi 14 décembre 2004StatutMembreDernière intervention29 décembre 20124 10 déc. 2008 à 12:10
Ensuite la modif pour donner database en string euh ... autant le faire à la mode PDO ^^ je modifierais pour ceci ...
$oPDOStatement->bindParam(':database', $sDatabase, PDO::PARAM_STR);
Il doit se vautrer sur le type de la variable.
Ce qui est une bonne remarque pour la classe Crud car je ne donne aucun type alors que je les ai!
Pour THE TYPE IS UNDEFINED, tu as bien fait de chercher dans VarType.cls.php
En fait, cette classe fait correspondre à un type de champs contenu dans DATA_TYPE une classe de gestion de type. Ta modif pour ajouter ces types semble correcte.
Je veux bien la structure de la table qui fait planter le serialize du model de la classe si c'est possible (pour comprendre pq ca pete un cable) ^_^
Le serialize est il est vrai lourd mais me sert a être réutilisable en JS! (c'est le seul moyen que je connaisse)
Pour Le Crud, je suis parti du principe que l'on ne change QUE les champs n'étant pas une clef primaire.
C :
Pour une insertion on met une instance de la classe Type "contenant" une instance de la classe Null dans la clef primaire du modèle. Ensuite, je construit la requete d'insertion.
R :
Pour un retrieve, je pars du principe qu'on connait que les champs d'une instance du modele/controleur.
PS: Au retour de la requete, je ne cast pas le ResultSet car a mon sens c'est un non sens (et une perte de perf). il revient sous forme de string il le reste puisque c'est sensé être affiché à 70% des cas d utilisation. A voir un param pour "forcer" le typage du retour!
U :
Pour un update, le fonctionnement est pareil que R
D :
Pour un delete, le fonctionnement est pareil que R
En gros je pars du principe que qd on veut qqch on fait une instance du model/controleur et on balance la méthode!
PS :
Il faut effacer les lignes euh ... 166 a 169 de Crud.cls.php (c'est du debug :p)
Ptite remarque générale, dommage qu'au niveau de ton modèle tu ne gère pas les datasets - pour le moment tu est au niveau des entités, mais je ne vois pas comment tu peux gérer une requette de type select ... where ...
---
Je reste dans le coin ;),
Akh
Teclis01
Messages postés1423Date d'inscriptionmardi 14 décembre 2004StatutMembreDernière intervention29 décembre 20124 10 déc. 2008 à 10:26
Merci beaucoup :)
J'attendais ce premier commentaire avec beaucoup d'espoir et ça fait vraiment plaisir!
Je modifierais petit a petit la source pour y ajouter un exemple, l'utilisation de la classe Database pour l'index >_< et une plus grande richesse de "composants" donc si ça vous intéresse restez dans le coin ^^
13 janv. 2009 à 14:22
Je suis en train de préparer une nouvelle mouture avec notamment les FK. Je me penche sur ta suggestion juste après :)
10 janv. 2009 à 01:07
10 janv. 2009 à 01:04
Une autre petite suggestion pour tes requetes PDO utilise des requetes préparé comme ca tu evite les injections sql
A+
9 janv. 2009 à 12:12
J'ai une petite suggestion quand tu génère la classe modele pourquoi ne fais tu pas une classe abstraite (Ex : abstract Crud) qui contient toutes les méthodes et tu fais etendre ta classe modele. Ca évite la redondance de code au pire tu génère juste le constructeur qui passe les paramètres qui faut a la classe Crud
Sinon j'ai pas encore testé je te dis mon avis apres mes test
A+
4 janv. 2009 à 23:41
Juste pour savoir si ça interesse qqun ou si ya des erreurs ou des choses mal pensées/mal faites dites le moi ça serait sympa...
17 déc. 2008 à 22:37
La mise en page du texte était degeu je l'ai passée dans l'explication de la source en ajoutant le date histoire d'avoir un espèce de versionning Au zecoursss les zadmineu >_<
10 déc. 2008 à 12:10
http://www.manuelphp.com/php/ini.zend.ze1-compatibility-mode.php
De mon côté je ne gère pas le clonage de la classe PDO
http://fr.php.net/pdo
Ensuite la modif pour donner database en string euh ... autant le faire à la mode PDO ^^ je modifierais pour ceci ...
$oPDOStatement->bindParam(':database', $sDatabase, PDO::PARAM_STR);
Il doit se vautrer sur le type de la variable.
Ce qui est une bonne remarque pour la classe Crud car je ne donne aucun type alors que je les ai!
Pour THE TYPE IS UNDEFINED, tu as bien fait de chercher dans VarType.cls.php
En fait, cette classe fait correspondre à un type de champs contenu dans DATA_TYPE une classe de gestion de type. Ta modif pour ajouter ces types semble correcte.
Je veux bien la structure de la table qui fait planter le serialize du model de la classe si c'est possible (pour comprendre pq ca pete un cable) ^_^
Le serialize est il est vrai lourd mais me sert a être réutilisable en JS! (c'est le seul moyen que je connaisse)
Pour Le Crud, je suis parti du principe que l'on ne change QUE les champs n'étant pas une clef primaire.
C :
Pour une insertion on met une instance de la classe Type "contenant" une instance de la classe Null dans la clef primaire du modèle. Ensuite, je construit la requete d'insertion.
R :
Pour un retrieve, je pars du principe qu'on connait que les champs d'une instance du modele/controleur.
PS: Au retour de la requete, je ne cast pas le ResultSet car a mon sens c'est un non sens (et une perte de perf). il revient sous forme de string il le reste puisque c'est sensé être affiché à 70% des cas d utilisation. A voir un param pour "forcer" le typage du retour!
U :
Pour un update, le fonctionnement est pareil que R
D :
Pour un delete, le fonctionnement est pareil que R
En gros je pars du principe que qd on veut qqch on fait une instance du model/controleur et on balance la méthode!
PS :
Il faut effacer les lignes euh ... 166 a 169 de Crud.cls.php (c'est du debug :p)
10 déc. 2008 à 11:21
Fatal error: Cannot clone object of class PDO due to 'zend.ze1_compatibility_mode' in ..\index.php on line 17
En mettant ça : $oPDO =& new PDO ... ça passe (PHP 5.2.6)
---
Après la partie sélection des tables ne passe pas chez moi - en remplaçant par ce code ça passe :
$sQuery = 'SELECT TABLE_NAME FROM TABLES WHERE TABLE_SCHEMA=\''.$sDatabase.'\'';
$aResultTables = $oPDO->query($sQuery)->fetchAll();
---
Après j'ai une erreur de type : Connection failed: THE TYPE IS UNDEFINED. J'ai rajouté ces définitions dans VarType.cls.php :
'text'=>'String','blob'=>'String','timestamp'=>'Integer','mediumint' => 'Integer'
---
En regardant le résultat je vois :
const MODEL='a:6:{i:1;O:5:"Field":9:{s:20:"
Y'à une erreur quelque part car le serialize n'est pas finit.
Sinon serialize et unserialize c'est une perte de perfs, regardes du côté de : http://fr2.php.net/manual/en/function.var-export.php
---
Ptite remarque générale, dommage qu'au niveau de ton modèle tu ne gère pas les datasets - pour le moment tu est au niveau des entités, mais je ne vois pas comment tu peux gérer une requette de type select ... where ...
---
Je reste dans le coin ;),
Akh
10 déc. 2008 à 10:26
J'attendais ce premier commentaire avec beaucoup d'espoir et ça fait vraiment plaisir!
Je modifierais petit a petit la source pour y ajouter un exemple, l'utilisation de la classe Database pour l'index >_< et une plus grande richesse de "composants" donc si ça vous intéresse restez dans le coin ^^
9 déc. 2008 à 18:12