Ce matin, en lisant le blog de Julien Pauli, je suis tombé sur Traits et PHP : héritage horizontal. Pour en savoir plus, notre sympathique Julien nous propose de lire un article : Request for Comments: Horizontal Reuse for PHP. L'article est bien fait, on comprend les tenants et les aboutissants.
Julien Pauli nous précise que Traits était prévu pour PHP 6 à l'origine, mais ça a déjà été discuté pour PHP 5.3. A priori (remarque à pondérer), on pourrait le trouver dans PHP 5.4 (si cette version sort).
Malgré tout, on le trouve en patch dans le dépôt CVS PHP 6 [1], on peut dores et déjà l'essayer.
Mon avis sur les Traits ? Est-ce bien important
Ça répond un problème de réutilisation et de maintenance du code, comme d'habitude. Il restait quelques cas avec l'héritage simple où l'on devait dupliquer du code (berk, pas bien !). On avait différentes façons de résoudre le problème mais on avait quand même pas mal de code à écrire. Trait est une bonne façon de contourner ce problème, mais comme il est dit un peu partout, c'est une sorte de pseudo héritage multiple … Bah, pourquoi ne pas faire un réel héritage multiple alors ? Je sais que c'est très compliqué et que ça n'a pas que des avantages, c'est peut-être pourquoi PHP a choisi Trait. Mais il faudra revoir la syntaxe, car elle utilise les même mots-clés que pour les lambda-calculus, et ça, c'est mal …
Bon, c'est une RFC bien sûr, mais autant donner nos avis de suite
Donc, une sortie pour PHP 5.4 a priori, donc une intégration par les frameworks courants pour … 2011 ? Il faut que tout le monde soit à jour … On se refait un petit gophp5.3 au moins ?
[1] et pas CSV comme l'a mis Julien