[PHP 5.1] CLASS STRING : NOUVEL EXEMPLE SUR LA SPL
cs_depression
Messages postés100Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention13 juillet 2009
-
13 mai 2008 à 22:04
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 2010
-
14 mai 2008 à 22:52
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 14 mai 2008 à 22:52
Hi,
c'est très exactement la même base que la classe de Neige. Sauf que l'idée n'est pas la même; le but, si : montrer la SPL en action. L'idée, non...moi, j'avais envie de m'amuser à utiliser les fonctions de tableau de PHP (puissantes et pratiques) sur des chaînes. Ca c'est l'excuse :-) Le truc que je voulais vraiment montrer, c'est d'une part la SPL (là, c'est exactement comme la classe de Neige), et une utilisation possible de la méthode __call(). On voit la même utilisation dans certains exemples de la SPL PHP (CacheIterator par exemple).
Ce n'est pas parfait, c'est juste un exemple, c'est purement didactique. Mais je pense qu'en fouillant on peut arriver à un truc extrêmement puissant. Là ça marche déjà pas mal mais c'est du bricolage (la constante à passer pour faire un retour par référence, etc...).
Bref l'idée est juste de montrer encore une fois qu'on peut s'amuser avec la SPL... :-)
Teclis01
Messages postés1423Date d'inscriptionmardi 14 décembre 2004StatutMembreDernière intervention29 décembre 20124 14 mai 2008 à 22:20
C'est propre, simple et explicite.
Effectivement ça se ressemble mais... j'aime les notations plus typées :p
malalam!!! lâche la librairie spl lâcheuuuu !!!
cs_yoman64
Messages postés592Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 4 décembre 2008 14 mai 2008 à 22:02
Teclis01
Messages postés1423Date d'inscriptionmardi 14 décembre 2004StatutMembreDernière intervention29 décembre 20124 14 mai 2008 à 08:58
Bien le bonjour les p'tits fous ^^
Cette classe me rappelle quelques chose >_<
Je passerais ce soir quand j'aurais lu le code :p
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 14 mai 2008 à 07:59
@depression : oui...encore que, je suis persuadé que c'est pas le cas pour tout le monde...et tu l'apprends comment ? Par exemple, parce tu auras vu un commentaire du type "On incrémente notre variable : $a++;" (ou ++$a). Que ce soit dans un bouquin, la doc, un cours, un tuto, un code, et quelle que soit la forme.
Mon point de vue est qu'il n'y a jamais trop de commentaires. D'ailleurs sur ce code j'ai pas terminé, je rajouterai les suivants plus tard. les commentaires aident à suivre le cours du code.
@coucou : voui, de toute manière cette classe n'a pas pour vocation d'être une classe complète de typage. Même si le sujet est intéressant et que je ferai peut-être évoluer le bin's dans ce sens un jour. Et ça peut-être amusant de compléter celle-là voir jusqu'où on peut aller, en effet :-)
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 14 mai 2008 à 02:03
je passe juste comme ca :)
rien a dire sur la classe, si ce n'est qu'elle ne s'occupe que de String, et non des types de bases, (genre les types de bases ont une representation json, ils sont serializable, on peut les passer en sql, etc...) mais c'est juste une evolution possible et pas une critique :)
sinon, j'ai vu des langages ou certains prennaient un malin plaisir a definir /* comme un operateur couple a */ (je sais plus trop comment, mais c'etait marrant)
bref, quand on voit du francais dans un code, peu importe ce qu'il y a devant, que ca soit #, ;, rem, ', ou //, on sait que c'est un commentaire...
cs_depression
Messages postés100Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention13 juillet 2009 13 mai 2008 à 23:39
Pour le ++, tu apprends très rapidement que c'est pour de l'incrémentation. T'apprends cela environ en même temps que // ou /* */ ou encore # servent à faire des commentaires.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 13 mai 2008 à 22:49
Hello,
ça s'appelle de l'emphase : j'insiste simplement sur le fait que OUI, c'est une chaîne (enfin, ça y ressemble), que OUI c'est une méthode, que NON elle n'est pas définie dans ma classe, mais que OUI je vais bien l'utiliser, cette méthode non définie, qui trie un tableau, et ce sur une chaîne.
Et ton exemple est pourtant plus utile que mon commentaire, parce que, encire faut-il savoir que ++ est un opérateur d'incrément...après tout, à qui servent les commentaires ? A ceux qui comprennent tout de suite? Naan...
cs_depression
Messages postés100Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention13 juillet 2009 13 mai 2008 à 22:04
Bon, je vais dl ta source pour bosser avec, mais une chose me fait sourire:
/**
* Use natcasesort() on our string...!
*/
$oChaine->natcasesort();
Comment dire, c'est un peu comme ceux qui écrivent:
14 mai 2008 à 22:52
c'est très exactement la même base que la classe de Neige. Sauf que l'idée n'est pas la même; le but, si : montrer la SPL en action. L'idée, non...moi, j'avais envie de m'amuser à utiliser les fonctions de tableau de PHP (puissantes et pratiques) sur des chaînes. Ca c'est l'excuse :-) Le truc que je voulais vraiment montrer, c'est d'une part la SPL (là, c'est exactement comme la classe de Neige), et une utilisation possible de la méthode __call(). On voit la même utilisation dans certains exemples de la SPL PHP (CacheIterator par exemple).
Ce n'est pas parfait, c'est juste un exemple, c'est purement didactique. Mais je pense qu'en fouillant on peut arriver à un truc extrêmement puissant. Là ça marche déjà pas mal mais c'est du bricolage (la constante à passer pour faire un retour par référence, etc...).
Bref l'idée est juste de montrer encore une fois qu'on peut s'amuser avec la SPL... :-)
14 mai 2008 à 22:20
Effectivement ça se ressemble mais... j'aime les notations plus typées :p
malalam!!! lâche la librairie spl lâcheuuuu !!!
14 mai 2008 à 22:02
14 mai 2008 à 08:58
Cette classe me rappelle quelques chose >_<
Je passerais ce soir quand j'aurais lu le code :p
14 mai 2008 à 07:59
Mon point de vue est qu'il n'y a jamais trop de commentaires. D'ailleurs sur ce code j'ai pas terminé, je rajouterai les suivants plus tard. les commentaires aident à suivre le cours du code.
@coucou : voui, de toute manière cette classe n'a pas pour vocation d'être une classe complète de typage. Même si le sujet est intéressant et que je ferai peut-être évoluer le bin's dans ce sens un jour. Et ça peut-être amusant de compléter celle-là voir jusqu'où on peut aller, en effet :-)
14 mai 2008 à 02:03
rien a dire sur la classe, si ce n'est qu'elle ne s'occupe que de String, et non des types de bases, (genre les types de bases ont une representation json, ils sont serializable, on peut les passer en sql, etc...) mais c'est juste une evolution possible et pas une critique :)
sinon, j'ai vu des langages ou certains prennaient un malin plaisir a definir /* comme un operateur couple a */ (je sais plus trop comment, mais c'etait marrant)
bref, quand on voit du francais dans un code, peu importe ce qu'il y a devant, que ca soit #, ;, rem, ', ou //, on sait que c'est un commentaire...
13 mai 2008 à 23:39
13 mai 2008 à 22:49
ça s'appelle de l'emphase : j'insiste simplement sur le fait que OUI, c'est une chaîne (enfin, ça y ressemble), que OUI c'est une méthode, que NON elle n'est pas définie dans ma classe, mais que OUI je vais bien l'utiliser, cette méthode non définie, qui trie un tableau, et ce sur une chaîne.
Et ton exemple est pourtant plus utile que mon commentaire, parce que, encire faut-il savoir que ++ est un opérateur d'incrément...après tout, à qui servent les commentaires ? A ceux qui comprennent tout de suite? Naan...
13 mai 2008 à 22:04
/**
* Use natcasesort() on our string...!
*/
$oChaine->natcasesort();
Comment dire, c'est un peu comme ceux qui écrivent:
// On incrémente $i:
$i++;
C'est pas le plus utile quoi ;)