Son hack permettrait de manipuler les objets comme en JavaScript
Visiblement non satisfait par les limitations du modèle objet de PHP, le développeur Dennis Hotson a créé un « Hack » permettant de manipuler les objets comme en JavaScript ou en Ruby.
Son bout de code (plutôt simple) est encore très expérimental et ne fonctionne que sous PHP 5.3.x car il s'appuie essentiellement sur les closures introduites dans la branche 5.3.
Ses implications sont très intéressantes, car il offre des possibilités de méta-programmation et de « monkey-patching » jusque-là non-accessibles comme l'ouverture, la modification et le clonage des classes et l'ajout des méthodes à n'importe quel moment de l'exécution du code.
Selon Dennis, son hack permettrait aussi de limiter la portée des classes et rendre certaines classes temporaires pouvant être débarrassés par le ramasse-miettes.
Son usage ressemblerait à cela :
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | // Définir une nouvelle classe avec un constructeur et une méthode $animal = $class->new() ->def('init', function($t, $name) { $t->name = $name; }) ->def('speak', function($t) { echo "My name is $t->name\n"; }); // Etendre la classe en ajoutant une autre méthode $dog = $animal->extend() ->def('speak', function($t) { echo "My name is $t->name, I have just met you and I love you, SQUIRREL!\n"; }) ->def('bark', function($t) { echo "Woof!\n"; }); |
Certains blogueurs applaudissent mais d'autres qualifient son bout de code de « bricolage » et l'invitent plutôt à changer de langage.

Et vous ?


Source : Le Blog de Dennis Hotson
Vous avez lu gratuitement 2 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.