STRINGBUILDER / STRINGBUFFER EN PHP (CLASSE SPÉCIALEMENT CONÇUE POUR MANIPULER D

kishkaya Messages postés 365 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 17 avril 2008 - 10 août 2007 à 10:42
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 20 août 2007 à 18:24
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/43726-stringbuilder-stringbuffer-en-php-classe-specialement-concue-pour-manipuler-des-chaines-de-caracteres

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 août 2007 à 18:24
Hello,

pas mal :-) Une bonne idée, et c'est agréable à lire.
Les critiques quand même :
- Je suis prêt à parier (pas trop hein) que c'est nettement plus lent que les fonctions str_blabla. Mais si on gagne en simplicité, moi, je ne suis pas contre une petite perte de perf.
- Tu aurais gagné, puisque tu codes en PHP5, à utiliser SPL. Les itérateurs t'auraient grandement aidé et ce serait nettement plus propre. Tu peux te baser sur les classes existantes, ArrayAccess notamment (une chaîne et un tableau...pas si différent, après tout ;-) ).
- Tu devrais pousser plus loin et proposer plus de méthodes inédites, mais d'autres peuvent le faire.
- Dans ton cas, je ne vois pas l'intérêt des try catch DANS tes méthodes. Il eut été plus propre d'étendre la classe Exception pour en créer une spécialisée (voire plusieurs), et de balancer des throw plutôt. Les try devraient être à l'appel de la classe et/ou des méthodes. D'autant plus que la plupart ne servent à rien vu que les fonctions/accès utilisés n'envoient pas d'exceptions (j'ai regardé très vite mais c'est ce qu'il me semble, à vue de nez).

Mais c'est une bonne idée :-)
8/10 pour moi.
cs_Donald_Duck Messages postés 11 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 14 août 2007
14 août 2007 à 20:10
Mort de rire!!
Vous inquiétez pas c'est un collègue qui s'est amusé à squatter ma session. Je voulais lui montrer un truc et voila ce qui arrive si j'ai le malheur de le laisser seul! Quel pourri!!

Mis à part ça, c'est d'accord je vais faire quelques benchs ce soir si j'ai le temps.

@Guillaume: Tu me le payeras! T'aurais au moins pu me démonter la gueule ;)
cs_Donald_Duck Messages postés 11 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 14 août 2007
14 août 2007 à 19:48
En effet, il serait peut-etre utile de faire des benchs.
Sinon il est dommage de ne pas avoir terminé cette classe, en effet je trouve que la façon de codé est très propre et très compréhensible pour un débutant. C'est très pratique pour ceux qui veulent voir comment un peux faire de l'objet en php et la manière de l'utiliser. Cette classe est très simple d'utilisation pour manier les string en php comme tu le dis si bien.

Par contre je pense aussi qu'il aurait mieux fallu déclarer la classe en final (Bien qu'au final cela ne change rien).

I applaud you
LeFauve42 Messages postés 239 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 20 avril 2009
14 août 2007 à 11:13
Salut,

As-tu fait des benchs pour comparer avec une construction de chaines "classique" ?
Autant les stringbuilders sont necessaire en JHava a cause de la maniere dont il gere sa memoire, autant je me demande si ca apporte beaucoup en PHP (a part ne pas depayser les habitues du Java ;o) ).

Sinon le code est vraiment tres clair et tres lisible !
Bravo!

Eric
TheSin Messages postés 331 Date d'inscription mardi 12 novembre 2002 Statut Membre Dernière intervention 10 février 2009
11 août 2007 à 16:12
bin si jdevais y rapporter des éléments, je le ferait directement dans le code de la classe :-P
A chacun sa vision des choses, mais je trouve ça plus logique de respecter les niveaux de hiérarchie d'objets. :-)
cs_Donald_Duck Messages postés 11 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 14 août 2007
11 août 2007 à 16:01
Huhu je l'attendais cette remarque ;)
Tu as tout à fait raison (et oui :D); J'aurais pu déclarer la classe en final, mais même si la classe n'est pas destiné a être hérité, je me réserve toujours une part de probabilité ou il est nécessaire d'avoir un héritage pour y apporter quelques suppléments par exemple. Bon, c'est ma manière de faire, et elle n'est peut-etre pas forcément louable :) (mais défendable :D)
TheSin Messages postés 331 Date d'inscription mardi 12 novembre 2002 Statut Membre Dernière intervention 10 février 2009
11 août 2007 à 11:45
Pratique :-)
Par contre, pour éviter de t'embêter avec des mots clés "final" à chaque méthode, déclare simplement la classe en final, puisqu'elle n'est pas destinée à être héritée ;-).
cs_MATHIS49 Messages postés 368 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 14 mai 2010 1
10 août 2007 à 22:07
Sympa on sent la JAVA touch ;)
kishkaya Messages postés 365 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 17 avril 2008
10 août 2007 à 10:42
Je comprends mieux ce que tu voulais faire...

=)

_Marikou
Rejoignez-nous