Heu si sans doute mais au début j'ai commencé à faire avec des false pour $after et quand j'ai écris la doc, il arretait pas de me dire que j'ai pas la même chose car je suis dit que c'est un string alors que dans ma fonction j'ai un boolean
Bonjour à tous,
Je sais que j'ai déjà posté un topic avec le même nom (http://www.grafikart.fr/forum/topics/15240) mais du coup grâce à votre aide je souhaitez vous faire partager la première version de ma classe PHP que j'ai pu faire grâce à votre aide.
https://github.com/babeuloula/DynamicTable
Et du coup je voudrais votre avis sur son écriture, les choses à améliorer, supprimer ...
J'attends vos retours
Merci et bonne journée
14 réponses
Salut,
Vraiment pas mal cette classe ! Bon, j'ai pas encore trouvé d'utilité dans mes projets actuels, mais elle peut s'avérer très utile dans certains cas. Beau boulot !
Je vais quand même regarder le code de plus près, mais à première vue, ton code est très propre !
Merci le seul truc que je voudrais faire c'est la gestion des exceptions
Je te conseil le tuto de Graf' dans ce cas : http://www.grafikart.fr/tutoriels/php/exception-throw-try-catch-529
J'avais vu merci mais j'ai pas eu le temps de le regarder c'est pour ça que je n'ai pas encore implémenté les Exception perso
J'y pense, c'est pas très propre ça ^^ :
Avec les exceptions ça sera plus propre, mais ce qui me choque c'est que tu utilise un htmlentities, ce qui est généralement utilisé pour néttoyer un user input. Dans ton cas, il est inutile, car le texte, c'est toi qui l'as hard coder, a moins que tu ne te fasse pas confiance, tu n'est pas obligé de l'utiliser :)
Non c'est juste que j'ai zapé de le retiré car mon serveur local n'est pas en utf8 et du coup j'avais des choses bizarres. Mais dans la v2 avec les Exception je retirerai ça
Salut,
en lisant brièvement le code, j'ai vu que tu retournais une nouvelle instance dans ta méthode create().
Je sais bien que tu souhaites utiliser le chainage de méthode, mais un 'return $this' ne suffirait-il pas ?
Pachenko.
Je viens de mettre en place une nouvelle version avec beaucoup de modifs :
- Mise en place des Exceptions à la place des die()
- create() : Changement de la syntaxe (regarder le Readme)
- getRows() : Ajout de toutes les colonnes (y compris les commentaires)
- addRow(), renameRow() : Possibilité de rajouter des commentaires
- replaceChars() : Sur toutes les fonctions, évite d'avoir des tables avec des espaces et des caractères spéciaux
- Passage du format date en datetime pour plus de précisions
Dites moi si vous avez des idées de modifs.
Bonne journée
Bonsoir,
C'est devenu vraiment pas mal, bravo ! Pour realiser une interface d'edition de la base de donnée pour le client ça peut etre sympa.
Je n'ai pas beaucoup d'idées à par ajouter les requetes "basiques" tel que les insertions de données et eventuellement des methodes pour l'ajout de triggers (même si pour le dernier cas je n'ai pas vraiment de cas d'application concret).
Encore bravo.
Cordialement Litium
En gros j'ai dev ca car j'ai un client qui a besoin de gerer une base de donnees clients où il pourra changer les colonnes en ajoutant, supprimer, reoganiser
Le return $this ne retourne pas la même chose. J'ai justement testé avant de faire ça et ça ne fonctionne pas.
Tu peux regarder le tuto sur le Créer un MVC, Grafikart explique pourquoi.
En réalité, l'idée c'est de créer une copie de l'ancien objet. Il faut toutefois prendre en considération les références. En effet, tu fais return $this, ça retourne une référence de l'objet courant. Autrement dit, ça va créer un pointeur, sur la case mémoire en question. C'est pour ça qu'il est important de faire des clones d'un objet. Pour ce faire, il y a deux possibilités, le « deep copy », ou la copie en profondeur et le « shallow copy, soit la copie superficielle. Dans une copie en profondeur, l'idée sera de copier toutes les données pouvant faire référence à un pointeur, afin que celui-ci soit propre à une référence, et non à deux. Alors que la copie superficielle va uniquement copier la référence du premier objet (pas de ses variables membres par exemple).

Je vous encourage à consulter plusieurs documents à ce sujet. Bien souvent, on s'en rend même pas compte! Il y a probablement plusieurs spécificités selon les langages (moi j'ai juste transposé ça de C#), mais il faudrait voir de quel façon les trucs sont passés en PHP, comparativement à C# ou Java.
Ramz.
Alors j'ai compris En réalité, l'idée c'est de créer une copie de l'ancien objet. Il faut toutefois prendre en considération les références. En effet, tu fais return $this, ça retourne une référence de l'objet courant. Autrement dit, ça va créer un pointeur, sur la case mémoire en question mais alors après, j'ai eu l'impression que tu me parlais en chinois ... Il y aurai moyen de faire un article plus étendu et détaillé sur la matière ?