Tout juste de retour de la SymfonyCon Paris 2015, il est temps de faire le point sur Symfony 3.0, annoncé juste avant lundi dernier et qui a été au centre de plusieurs conférences.
Symfony3 ou Symfony2 3.0 ?
Symfony2 a adopté la convention semver, semantic versioning. Cela implique des version majeures (2.0, 3.0…) où la compatibilité peut être cassée, des versions mineures (2.1, 2.2…) qui introduisent des nouveautés mais en maintenant la compatibilité, et des version patch (2.0.1…), pour les corrections de bugs.
La nouveauté principale de Symfony 3.0 est donc avant tout la cassure de la compatibilité avec la branche 2.x. Aucune nouvelle fonctionnalité n’a été ajoutée uniquement dans la version 3.0, par contre toute la couche historique assurant la rétro-compatibilité a été retirée, réduisant de l’ordre de 10% la base de code.
Une migration facilité
En même temps que Symfony 3.0 a été annoncé Symfony 2.8, dernière LTS (Long Term Support, version supportée 3 ans par la communauté) de la branche 2.x. Elle contient toutes les nouveautés de la 3.0, et conserve la couche de rétro-compatibilité. Toutefois toutes les fonctionnalités (méthodes…) qui seront retirées en 3.0 ont été marquées dépréciées depuis la 2.7, et dans la Web Debug Toolbar apparaîtront les warnings correspondant.
La migration est donc à envisager ainsi :
votre version actuelle de Symfony 2.x -> Symfony 2.8 -> correction des warnings -> Symfony 3.0
Migrer dès maintenant ?
Il est tentant de migrer dés maintenant, afin de tenir à son jour son projet. Toutefois il y a 2 bémols majeurs :
– la version 3.0 n’est pas un LTS. Elle ne sera supportée (correction de bugs…) que quelques mois, il faudra attendre la 3.3 voire la 3.4 pour un support garanti pendant 3 ans.
– le plus gros obstacle sera les bundles. Même dans le cas d’un bundle n’utilisant aucune des fonctions dépréciées, l’installation avec la 3.0 sera le plus souvent bloquée par les requirements du composer.json. Un tableau suivant la compatibilité des bundles a été démarré, nous pouvons espérer que cela avancera assez vite.
Je me réjouis de voir Symfony2 évoluer, et nous sommes impatients d’essayer les nouveautés de la 2.8. Nous reviendrons plus tard dans ce blog sur celles-ci, n’hésitez pas à laisser un commentaire si vous avez déjà fait le pas ou bien hésitez à migrer !