Mot-clé - fermeture

Fil des billets - Fil des commentaires

lundi 27 septembre 2010

Vous êtes dépendant ? ce n'est pas un problème !

L'injection de dépendances est un patron de conception que tout bon développeur qui fait de la programmation orientée objet, en PHP ou avec tout autre langage, devrait mettre en œuvre.

Pour rappel, il consiste à ne pas instancier d'objet dans le code des classes lors de la conception de ces dernières, mais à les injecter lors de exécution du code dans les instances de classes, soit à l'aide d'un passage par argument sur la méthode appelée, soit à l'aide d'une méthode dédiée.

Ainsi, le découplage entre les classes est augmenté, et le code est alors plus modulaire et réutilisable.

De plus, l'injection de dépendances facilite l'écriture des tests unitaires puisqu'elle permet de bouchonner facilement à l'aide de mock.

Pour autant, sa mise en œuvre n'est pas toujours forcément aisée.

Lire la suite

lundi 6 septembre 2010

L'avenir de PHP vu par Frédéric Hardy

Après le teasing, voici les faits, avec mes réponses à ma propre interview, qui clôtureront définitivement ce cycle sur la vision de l'avenir de PHP qu'ont ses utilisateurs.

Cela fait maintenant presque 34 ans que Je me connais.

Je suis extrêmement proche de moi-même, je ne me cache rien et je me dis absolument tout.

Il était donc normal que je me demande mon avis au sujet de l'avenir de PHP, afin de conclure en beauté cette série, d'autant que je suis très bien placé pour savoir que je ne ferais aucune concession.

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

mercredi 4 août 2010

Mort de PHP6 + 1[34]0 jours

Pour cause de vacances, je n'ai pas pu assuré le suivi du développement de la prochaine version de PHP sur les vingts derniers jours.

Je rattrape donc maintenant le temps perdu, et heureusement pour moi, et malheureusement pour le langage, je n'ai pas loupé énormément de choses.

Ce qui suit concerne donc ce qu'il s'est passé jusqu'au 30 juillet 2010 au niveau du trunk de PHP.

Lire la suite

jeudi 8 juillet 2010

Les fermetures, c'est trop... fermé !

J'utilise actuellement intensivement les fermetures, plus connues sous leur dénomination anglaise closure, dans mes développements PHP.

Elles sont en effet extrêmement bien adapté à mon besoin, mais je viens de découvrir qu'elles ont un inconvénient de taille.

Lire la suite

- page 1 de 2