Symfony 4, ce qui va changer

Technique

1 fév, 2018

Le 30 novembre dernier, Symfony sortait la nouvelle version de son Framework PHP : Symfony 4.0. Il s’agit en réalité d’une version standard dite « mineure », la politique de son créateur depuis la version 3 étant de sortir une version mineure de son Framework tous les 6 mois, pour aboutir à la version finale de cette branche dite LTS (Long Time Support), Symfony 4.4.

Les versions mineures sont maintenues sur une durée de 8 mois tandis que la version LTS qui sortira d’ailleurs en novembre 2019 en même temps que Symfony 5.0 sera, elle, maintenue pour une durée de 3 ans.

imagejeremie4 Symfony 4, ce qui va changer

A chaque nouvelle version, Symfony nous apporte son lot de nouveautés mais aussi d’incompatibilités. Il serait fastueux et beaucoup trop long pour ce seul article de traiter exhaustivement toutes les modifications. C’est pourquoi nous ne parlerons ici que des évolutions majeures apportées depuis novembre.

Si les autres sujets vous intéressent, vous trouverez facilement sur le site du Framework les éléments dépréciés ou les promesses de compatibilité pour chacune des versions.

Premiers Pas avec Symfony Flex

A l’installation de cette nouvelle version de Symfony, nous nous retrouvons confrontés à la première des évolutions de Symfony 4 : Symfony Flex.

Pour l’installation et la gestion des nouveaux projets, Symfony a développé et intégré un outil permettant de remplacer le bon vieux Symfony Installer.
Ce nouvel outil permet d’automatiser la plupart des tâches d’installation, de suppression et de mise à jour des dépendances. Il s’agit en fait d’un plugin composé qui va faciliter la vie du développeur de l’application.

En effet, lors de l’ajout d’une dépendance via la traditionnelle commande ‘Composer require xxxxx’, Symfony Flex va d’abord interroger le serveur Flex pour trouver des informations à propos du package. Si rien n’est trouvé, alors Composer va prendre le relais avec son comportement « normal »

imagejeremie1 Symfony 4, ce qui va changer

Si Flex trouve des informations, il les retournera sous la forme d’un fichier appellé « recipe » (recette) qui contient en fait des instructions d’installation du package permettant une installation et un paramétrage automatique là ou, auparavant, le développeur dépensait un temps considérable à effectuer la configuration de chacun des Bundles.

La structure

imagejermie2 Symfony 4, ce qui va changer

Le projet s’installe et nous constatons deux nouvelles évolutions de Symfony 4. Tout d’abord la légèreté de l’application. Symfony 4 a été repensé, allégé, pour ne contenir que l’essentiel, c’est-à-dire les fonctionnalités de son « core ». Une vingtaine de packages, à peine plus. Certains lui donnent même la dénomination de micro-framework.

Libre à vous ensuite d’installer des packages supplémentaires à l’aide de Symfony Flex (formulaires symfony, orm doctrine, easyadmin …).

Ensuite, l’arborescence des dossiers a été modifiée. Le dossier app a été renommé en bin depuis la version 3 et contient la console.

Le dossier web a été modifié pour être renommé en public et le fichier app.php contenu dans ce dernier renommé en index.php

Un nouveau dossier config, contient pour sa part les fichiers de configuration de chacun des packages de l’application.

Enfin, un nouveau fichier .env contient la configuration pour les variables d’environnements.

BundleLess

Symfony 4 est dit bundleless et c’est là aussi une nouveauté de cette nouvelle mouture. En effet, cette partie concerne les bundles internes de votre application (vos propres développements) contenus dans le dossier src.

Toutes les classes doivent désormais être régies par le namespace « commun App » ce qui permet de s’affranchir de toutes les problématiques inhérentes à la gestion de bundles dans vos applications.

imagejeremie3 Symfony 4, ce qui va changer

Symfony 4 a donc été repensé dans sa structure et sa gestion pour apporter plus de facilité, d’efficacité et supprimer la plupart des contraintes du développeur, notamment relatives au paramétrage des bundles.

Il ne s’agit pas d’une révolution en tant que telle dans cette version du Framework, mais d’évolutions pratiques. Celles-ci se voient complétées par des outils également tournés vers une certaine facilité de mise en place et d’utilisation, à l’image de Symfony Flex, ou de Bundles tels que Symfony Maker Bundle ou Webpack Encore.
Pour plus d’informations sur les nouveautés des différentes versions vous pouvez notamment  vous reporter au blog de Fabien Potencier.

Laisser un commentaire.