Comme promis, petit point sur Symfony 2.0.
Vous trouverez souvent ici des articles sur Symfony, un framework PHP que j’affectionne tout particulièrement.
Il y a quelques mois, Fabien, le gars à la tête du framework, nous gratifiait d’une preview de symfony 2.0. A l’époque, je me disais qu’il était encore parti en plein délire et j’avais fini la présentation assez sceptique sur le lien entre “ça” et l’actuel framework.
Depuis, les choses ont fait un peu de chemin et nous voilà avec une beta de cette 2.0.
Première lecture, première page, mauvaise surprise, je ne reconnais rien. Trois ans que je fais du symfony et impossible d’identifier le moindre bout de code … fermeture du navigateur.
Deuxième tentative, lecture approfondie, je commence à retrouver mes marques et, mine de rien, je trouve pas mal d’idées très intéressantes.
L’univers du Bundle roi
Symfony est très modulable, avec son modèle MVC et son système de plugins, il est très facile d’étendre son code et son application.
La version 2.0 arrive ici avec un concept nouveau : le Bundle, une unité de code qui est utilisée pour son application, les plugins, mais également le framework lui-même.
L’idée est alléchante, comme tout est Bundle, on va pouvoir charger vraiment les parties du framework que l’on souhaite, mais aussi packager facilement son application pour la délivrer sous forme de plugins.
Reste à voir comment tout cela va se passer en “conditions réels” et j’espère que cela va permettre une montée en puissance de la partie plugins de Symfony que je ne trouve malheureusement pas assez aboutie.
M’as-tu vu ?
L’autre grosse nouveauté, c’est la partie vue du modèle MVC, dans Symfony 2.0, on trouve quelque chose de plus homogène avec le contrôleur. On retrouve la structure de notre Bundle ce qui va permettre un plus grande liberté dans l’utilisation des inclusions de vues entre Bundles et applications.
Autre changement, le passage des vues en objets. Même si Symfony est un framework utilisant intensément la programmation objet, on trouvait dans les versions 1.x un système d’Helper utilisé dans les vues. Concrètement, il s’agissait d’ensemble de fonctions utilisables pour créer les liens, formulaire et autres éléments HTML.
Maintenant, tout est objet ce que vont adorer les fans d’objets … mais le problème est que cette partie vue est souvent destinée aux intégrateurs qui ne maîtrisent pas forcement ces notions … Reste à attendre le Bundle Smarty :)
2.0 ready ?
Je passe sur les autres petites nouveautés et j’imagine que tout cela va encore beaucoup changer.
Je trouve qu’il y a finalement pas mal de très bonne idée dans cette 2.0 mais la pilule va être difficile à passer.
Dans mon entreprise, nous finissons tout juste notre migration vers Symfony et bon nombre de projets sont encore en Symfony 1,0. Malgré une 1.4 LTE encore maintenue pendant 3 ans, je me dis que le travail de migration en 2.0 va être difficile à justifier …
Il va vraiment falloir un gros travail sur les procédures de migrations et l’utilisation de modules de compatibilité pour assister au mieux la mise à niveau.
Affaire à suivre.