Retour du Forum PHP 2008, et IOC dans Jelix
Par Laurentj le vendredi, décembre 12 2008, 12:07 - Sorties pour geek - Lien permanent
Un p'tit billet pour dire que ce Forum PHP 2008 était sympathique, bien organisé, avec des conférences intéressantes (au moins pour la journée de Mardi, à laquelle je suis allé).
J'ai pu notamment faire la connaissance de Fabien Potencier (monsieur Symfony), et j'ai trouvé sa conférence sur l'injection de dépendance et l'inversion de contrôle très intéressante et très pédagogique. Et du coup, j'ai enfin tout compris de ces termes barbares. (les tutoriels que j'ai pu lire par le passé sur le sujet étaient ultra théoriques et peu compréhensibles...)
En fait j'ai surtout compris que j'ai déjà utilisé l'injection de dépendance sans le savoir, et j'ai compris aussi l'intérêt d'un patch dans Jelix que m'avait soumis un contributeur, Christophe, qui a assisté lui aussi à cette conférence.
En fait donc, dans Jelix 1.1, il y a un embryon de possibilité d'inversion de contrôle ! (C'est dingue ce qu'on peut apprendre dans ce framework :-D). Christophe et moi, on a quand même constaté que ce n'était pas suffisant (d'où le terme employé, "embryon"), et donc pour la 1.2, on vous prépare du vrai IOC et de la vraie DI, bien intégré dans Jelix, réutilisant la philosophie des sélecteurs de classes de Jelix. (pour la 1.1, c'est un peu tard là, vu qu'on est au stade RC1..).
Commentaires
Avant d'aller trop vite dans l'implémentation, je t'invite à lire ce que je pense de cette inversion de contrôle.
http://xhtml.net/php/pluf-framework...
Pour moi, l'idée est bonne, mais l'utilisation généralisée est dangereuse, particulièrement au niveau des performances finales.
Ne t'inquiète surtout pas Loic sur l'implementation dans Jelix. Loin de moi l'idée de mettre de l'IoC de partout :-) Dans Jelix, l'IoC sera proposé juste pour le developpement des classes métiers dans les modules, et non obligatoire.
Le framework en lui même est suffisament souple et extensible comme ça, avec des systèmes de plugins tout simple un peu partout. Je ne vais pas rajouter une couche par dessus. Actuellement, le seul truc où il est moins souple, c'est justement au niveau des classes métiers, et je pense qu'à ce niveau l'IoC sera pertinent.
Je suis totalement d'accord avec toi, ça sert à rien de faire de l'IoC à tout les niveaux si on n'a pas besoin, et pour moi aussi la performance est le critère numéro 1 pour le developpement de Jelix.
Ouf ! Me voilà rassuré, le modèle d'exécution de PHP étant ce qu'il est, abuser de l'IoC n'a pas de sens.
Je vais suivre avec beaucoup d'intérêt l'implémentation dans Jelix car pour le moment, dans Pluf, je laisse le développeur complètement libre au niveau des classes métiers.