Mot-clé - __invoke

Fil des billets - Fil des commentaires

lundi 11 octobre 2010

Mort de PHP6 + 210 jours

Durant ces dix derniers jours, les développeurs de PHP ont été particulièrement productifs.

En effet, il y a eu plus de 75 modifications de faites sur le trunk, et plus de 315 fichiers modifiés ou ajoutés.

Comme d'habitude, une grosse partie du travail effectué correspond à des corrections, du nettoyage et de l'optimisation, mais il y a également deux surprises.

De plus, il y a également eu des discussions intéressantes sur la liste de diffusion des contributeurs, internals@.

La période qui vient de s'écouler a donc été plus riche que les précédentes.

Lire la suite

mercredi 18 août 2010

PHP manque de plus en plus de cohérence

PHP est un langage connu pour avoir un certain nombre d'incohérences, à la fois au niveau de sa syntaxe et de son fonctionnement.

Au niveau syntaxique, il y a par exemple le cas des fonctions permettant la manipulation des chaînes de caractères, qui ne suivent pas une convention de nommage rigoureuse.

C'est la raison pour laquelle il existe, par exemple, une fonction strpos() et une fonction str_pad().

L'ordre des arguments peut également être variable d'une fonction à une autre, alors qu'elles sont toutes les deux du même domaine fonctionnel.

Ainsi, array_search() et strpos() permettent toutes deux de localiser un élément parmi plusieurs, mais l'ordre de leurs deux premiers arguments est inversé.

Au niveau de son fonctionnement, les incohérences sont certes moins nombreuses, mais à mon sens plus vicieuses.

Si celle concernant l'impossibilité de spécifier autre chose qu'une classe ou un tableau comme type d'argument pour une fonction ou une méthode n'est pas trop méchante, celle ne permettant pas de définir une méthode de classe abstraite imposée par une interface l'est beaucoup plus.

Autre incohérence pénible, il n'est pas possible d'appeler directement une fonction anonyme ou une fermeture si cette dernière est une propriété d'un objet.

Évidement, cette liste d'incohérence est loin d'être exhaustive, d'autant qu'elle s’enrichit régulièrement grâce aux nouvelles fonctionnalités supportées par le langage au fur et à mesure des versions.

Ainsi, Wilfried Ceron, dont j'ai fais l'interview récemment, m'a permis d'en découvrir une nouvelle, via l'utilisation de la méthode magique __invoke(), disponible depuis PHP 5.3.0.

Lire la suite