Symfony 4, faciliter la vie des développeurs
17 mai 2017
Nous avons participé à la Keynote de Fabien Potencier, au Symfony Live 2017 à Paris. Il a présenté en avant-première Symfony 4 avec plusieurs changements fondamentaux qui seront détaillés dans cet article.
D’autres annonces ont été faites durant cette présentation :
- Le nouveau mode de versioning de Symfony,
- Une volonté de simplifier l’installation de bundles externes,
- Une date de sortie pour SF4.
Keynote de @fabpot sur #Symfony 4 au #Symfony_Live Paris ! La salle est pleine !! pic.twitter.com/o9TC8ClDJ0
— Symfony Live (@symfony_live) 30 mars 2017
Des changements dans la ligne de conduite de Symfony
Parmi les annonces faites pendant cette keynote, SensioLabs annonce une nouvelle politique de versionning de Symfony :
Une version majeure tous les 2 ans, une version mineure tous les 6 mois
La nouvelle version ne déroge donc pas à la règle et sera la première version majeure
qui respectera cette règle. Cette version va sortir dans le courant avril/mai 2017 en bêta dans une optique d’annoncer la release officielle en novembre 2017.
En premier lieu, SensioLabs effectue un changement important dans la façon d’installer le framework. Dans les anciennes versions de Symfony, il était possible de récupérer plusieurs distributions pré-conditionnées avec un ensemble de bundles: l’édition standard (Symfony CMF edition) et distribution API-Rest (Symfony Rest edition). Dans la version 4, il n’y a plus qu’une seule distribution disponible.
Dans cette nouvelle façon d’installer Symfony, nous allons juste récupérer un composer.json disponible sur le repository github symfony/skeleton.
Il sert de cookbook indiquant les bundles essentiels au bon fonctionnement du core de Symfony. Rien de plus ne sera installé et c’est à la charge du développeur de gérer les dépendances dont il va avoir besoin durant la phase de développement de l’application.
On se retrouve donc avec une instance légère en dépendance, en début de projet. Petite anecdote, l’installation de Symfony 4 n’embarque pas le bin/console !
SensioLabs aide les développeurs au jour le jour
Un gros travail sur l’installation des vendors a été effectué afin de faciliter l’installation.
La version 3.4 (ou 4) implémente un nouveau système de recettes (Recipe) qui permet de gérer directement les dépendances du bundle en cours d’installation.
Plus besoin de lire le README.md du bundle ou de devoir effectuer les X étapes nécessaires à l’installation du bundle. Chaque bundle possède son propre manifest de configuration. La nouvelle cli de Symfony permet d’interpréter ces recipes et d’installer directement le bundle, sans avoir à effectuer de configuration à la main. Fini les config.yml qui possèdent la configuration des différents bundle de l’application. Chaque bundle possède ses propres fichiers de configuration. N’ayez pas peur, il reste toujours possible d’installer les bundles de l’ancienne façon.
On se retrouve donc avec une architecture de dossiers qui ressemble sensiblement à celle des versions précédentes et un dossier /etc qui remplace le app/config.
Les fichiers de configuration sont de la configuration propre à l’application et qui ne ressemblent plus à un agglomérat de configuration de différents bundles
En conclusion
SensioLabs, avec la version 4 de Symfony, essaie de faciliter au maximum le travail du développeur :
- Régulariser la sortie des nouvelles versions (roadmap plus précise)
- Faciliter l’installation des dépendances d’un projet en accompagnant le développeur au jour le jour.
L’événement Symfony Live 2017 à Paris était très enrichissant avec des conférences très intéressantes axées sur les API et sur des approches différentes de les concevoir. Vous pouvez retrouver les slides (et certaines vidéos) des conférences sur le github suivant.