vendredi 9 avril 2010

Parangonnons encore un peu !

Cette nuit, les jumeaux ont décidé de donner de la voix.

Du coup, j'ai eu le temps de gamberger sur les remarques qui ont été faites en commentaire de mon précédent billet.

J'ai donc optimisé mon code PHP, afin de voir si le différentiel entre la mise en oeuvre de la combinaison de l'instruction foreach et de la fonction is_string() et l'utilisation de la classe filterIterator de la SPL était induite par mon algorithme ou par la lenteur de l'itérateur.

Lire la suite

jeudi 8 avril 2010

Parangonnons un peu !

Dans le cadre de l'un de mes projets, j'ai été amené à extraire d'un tableau PHP les éléments ayant pour clef une chaîne de caractères.

Mon premier réflexe a été de me tourner vers la fonction array_filter(), mais malheureusement, elle ne permet pas de filtrer sur les clefs d'un tableau.

Du coup, j'ai été obligé de trouver une autre stratégie.

J'ai d'abord envisagé un recours très classique à l'instruction foreach et à la fonction is_string(), avant d'envisager sérieusement l'utilisation d'un objet dérivé la classe filterIterator de la SPL.

Cependant, vu que je ne savais pas quelle méthode serait la plus efficace, et que je souhaitais depuis longtemps me faire une idée des performances de cette classe de la SPL, je me suis fendu d'un petit benchmarking étalonnage, et vu que je suis d'un naturel joueur, j'ai décidé d'ajouter les closures dans l'équation.

Lire la suite

jeudi 11 mars 2010

Erreur ou exception ?

L'un des apports majeurs de PHP 5.0 a été la gestion des exceptions.

Du coup, pendant un temps, la mode a été de transformer les erreurs classiques qu'il est possible de générer à l'aide de la fonction trigger_error() en exception, voir même de définir une fonction spécifique de gestion des erreurs à l'aide de set_error_handler() pour attraper les erreurs générées par PHP ou à l'aide de trigger_error() afin de les transformer en exception.

Si cette folie furieuse semble être passée, il en reste encore des traces, et il arrive bien souvent que je sois amené à voir du code qui, à mon sens, devrait générer une erreur au lieu d'une exception.

Lire la suite

mardi 25 novembre 2008

La SPL, c'est bien... ou pas !

La SPL est une des bonnes choses qui sont arrivées avec la version 5.1 du langage PHP.

Elle permet en effet entre autre l'utilisation des itérateurs

Ainsi, il devient possible d'itérer sur un objet dès lors que sa classe implémente l'interface iterator ou iteratorAggregate.

Lire la suite