L’essentiel sur Symfony 7 avec Nicolas Grekas

Interview Nicolas Grekas

Symfony 7 sort aujourd’hui. Comme à chaque nouvelle version majeure de Symfony, SensioLabs a eu la chance d’interviewer en exclusivité Nicolas Grekas, l’un des principaux contributeurs de la Core Team de Symfony. Découvrez au fil de l’interview les principales nouveautés techniques de Symfony 7 et les informations à connaître pour vous préparer à Symfony 7.

Quelle est la philosophie de Symfony 7 ?

Symfony 7, c’est d’abord et avant tout la conclusion des deux années de features effectuées depuis la sortie de la dernière version majeure Symfony 6 fin 2021.

La nouvelle version Long-Term Support Symfony 6.4 sera disponible en même temps que Symfony 7. En effet, Symfony publie une nouvelle version majeure tous les deux ans qui est identique à la version Long-Term Support, sauf que le code a été débarrassé de toutes les fonctionnalités dépréciées. Symfony arrive ainsi à conjuguer stabilité et innovation.

La stabilité, car les process de développement du framework sont encadrés, ce qui permet de faire une montée de version facilement. Il n’y a pas de rupture majeure entre les versions, c’est une évolution dans la continuité. Symfony 7 s’inscrit dans le fil directeur qui est la colonne vertébrale de nos développements depuis la sortie de Symfony 2 en 2012.

En même temps, Symfony favorise l’innovation et offre aux développeurs les dernières avancées de ce qui se fait dans la technologie. C’est la communauté qui contribue et qui assure “le nettoyage” de code tous les deux ans et qui libère des fonctionnalités qui ne sont plus utilisées.

Symfony 7 réussit à nouveau le grand écart entre le fait d’être à la fois une technologie éprouvée et un framework à la pointe de l’innovation.

Quelles sont les nouveautés majeures dans Symfony 7 ?

Comme à chaque nouvelle version majeure de Symfony, plusieurs composants sont ajoutés au framework. Voici les nouveaux composants : 

  • Clock, qui améliore la capacité à tester le code soumis à des contraintes de temps.
  • Webhook, pour définir ses propres webhooks et répondre aux événements distants.
  • Scheduler, qui déclenche et envoie des messages selon un calendrier prédéfini.
  • HTML Sanitizer, qui permet de créer du code HTML de façon sécurisée et conforme aux spécifications.

AssetMapper, pour écrire du JavaScript et du CSS modernes sans utiliser un bundler.

Et comme toujours, un effort particulier est mis sur l’amélioration de la performance et de la sécurité. Symfony 7 ne déroge pas à cette règle et améliore l’existant. Symfony 7 suit l’évolution des standards en matière de sécurité. Par exemple, l’augmentation des prérequis du protocole HTTPS, maintenant que tout le monde a suffisamment de clients à jour. Symfony 7 permet aussi la mise en place des CHIPS cookies qui sont plus respectueux de la vie privée des utilisateurs.

Symfony 7, c’est enfin une version qui nécessite d’avoir PHP 8.2 et va exploiter les nouvelles fonctionnalités de PHP 8.2 au maximum.

Symfony 7

Qu’est-ce qui va changer pour les développeurs concrètement ?

Symfony 7 apporte beaucoup de modernité et va permettre aux développeurs de créer de nouvelles fonctionnalités plus innovantes.

Grâce à PHP 8.2, les attributs sont désormais très présents dans Symfony 7. Apparus à la sortie de PHP 8, ils existaient déjà dans Symfony 6, et seront encore plus présents dans Symfony 7. Les attributs donnent la possibilité à un développeur d’exprimer les besoins de son application de manière beaucoup plus efficace qu’avant. Le code est désormais beaucoup plus expressif. Les attributs apportent donc des gains de productivité et une élégance accrue du code. Développer en Symfony devient plus agréable qu’auparavant et c’est un aspect qui nous tient à cœur. En effet, un développeur qui a plaisir à écrire son code est plus efficace et satisfait.

De nouveaux attributs arrivent en Symfony 6.4 et d’autres à venir. Par exemple, les attributs Autowire et Autoconfigur permettent à Symfony de mieux savoir comment utiliser les classes développées dans l’application.

Symfony utilise également autant que possible le système de déclaration de types permis par les dernières versions de PHP. La lecture du code est améliorée et plus explicite. Les outils d’analyse statique fonctionnent mieux, ce qui permet de remonter des problèmes plus tôt dans le processus de développement.

Toutes ces nouveautés améliorent beaucoup l’expérience de développement sur Symfony.

Comment Symfony 7 évolue par rapport à PHP ? et aux autres projets Open Source ?

Symfony est de plus en plus impliqué dans le développement de PHP. Comme on l’a vu, Symfony 7 utilise tout le potentiel des nouveautés de PHP 8.2 pour offrir des fonctionnalités adaptées à leur temps. Les dernières versions de PHP se développent également en lien avec l’évolution de Symfony.

Ces deux dernières années, PHP a beaucoup progressé avec la création de la Fondation PHP dans laquelle s’implique Symfony. PHP se structure davantage et Symfony s’est engagé dans ces travaux en aidant au développement du langage PHP lui-même.

Dans ses relations avec d’autres projets Open Source, Symfony 7 reste fidèle aux mêmes principes depuis Symfony 2. C’est-à-dire fournir des composants utiles et découplés pour des projets Open Source. Symfony est aujourd’hui un projet fondateur pour beaucoup de projets Open Source d’envergure, comme Drupal, Shopware ou encore Sulu.

Nicolas Grekas  ©les-tilleuls.coop
©les-tilleuls.coop

Quels sont tes conseils pour monter de version sur Symfony 7 ?

Passer d’une version précédente de Symfony vers Symfony 7 est une opération simplifiée. Depuis Symfony 3 et la mise en place du chemin de migration continue, la montée de version est guidée entre les versions majeures de Symfony.

Voici la check list à suivre pour monter de version vers Symfony 7 : 

  1. Mettre à jour son projet en Symfony 6.4
  2. S’assurer que le code ne génère aucune notice de dépréciation
  3. Passer à PHP 8.2
  4. Faire la mise à jour vers Symfony 7 en constatant que tout fonctionne et en corrigeant éventuellement les derniers ajustements.

Pour la plupart des utilisateurs, Symfony 7 ne comporte pas de dépréciation qui bouleverserait tout dans le code. La montée de version devrait donc être relativement simple et peu coûteuse. L’effort à fournir est plutôt mesuré.

A quel moment passer à Symfony 7 ?

Le plus tôt possible ! En effet, Symfony 7 sera une version stable dès sa sortie. Elle ne sera pas plus expérimentale que d’autres versions.

En passant tout de suite à Symfony 7, c’est être prêt dès maintenant pour les itérations suivantes. La rétrocompatibilité se poursuit entre les versions mineures et donc par exemple de Symfony 7.0 à Symfony 7.1. Monter de version vers Symfony 7 tout de suite, c’est avoir l’opportunité de bénéficier des améliorations qui seront proposées dans Symfony 7.1, 7.2, …

La seule différence entre Symfony 7 et Symfony 6.4, c’est que Symfony 7 va supprimer les fonctions dépréciées. Juste après la publication de Symfony 7, des librairies que les utilisateurs peuvent utiliser dans un projet pourraient ne pas être prêtes pour fonctionner avec Symfony 7. Ces problèmes vont se régler progressivement grâce aux contributions de la communauté dès la sortie de Symfony 7.

N’attendez pas que quelqu’un d’autre mette à jour vos dépendances ! Contribuez dès maintenant en Open Source pour s’assurer que vos librairies soient compatibles à Symfony 7 et vous en ferez bénéficier à toute la communauté.

Qu’est-ce que Symfony 7 va apporter à une entreprise ?

Symfony 7, c’est une projection vers le futur qui va s’écrire sous cette nouvelle version du framework.

Pour une entreprise, passer à Symfony 7, c’est apporter plus de confort dans le développement d’applications grâce aux améliorations de Symfony 7. C’est aussi “payer une partie de sa dette technique”. Ce qui veut dire plus d’agilité à l’avenir et ne pas se retrouver dans une situation où il faudra un jour réécrire tout le code.
Dans le cas d’une entreprise qui s’interroge sur les raisons de migrer vers Symfony 7, retrouvez toutes les bonnes raisons de choisir Symfony dans ce livre blanc. Migrer vers Symfony, c’est le choix d’une technologie éprouvée et de l’innovation en même temps.

Comment soutenir la sortie des nouvelles versions de Symfony et la contribution Open Source ?

Symfony est un projet Open Source qui est le résultat des contributions des individus et des entreprises participant à ces évolutions. L’avenir de Symfony ne s’écrit que grâce à la somme collective de toutes les contributions.

Les contributions se font de plusieurs façons : 

  • en donnant du feedback, c’est-à-dire remonter des problématiques ou des souhaits de nouvelles fonctionnalités
  • en contribuant au code avec des pull requests
  • en améliorant la documentation
  • en sponsorisant financièrement les contributeurs de Symfony les plus actifs sur Github

Les entreprises peuvent également contribuer à Symfony en finançant plusieurs packages de sponsorings : une version majeure ou mineure du framework (comme SensioLabs et Private Packagist le font avec Symfony 6.4), un composant spécifique, la newsletter hebdomadaire “A Week of Symfony”, le livre “The Fast Track to Symfony 7” et bien sûr les conférences Symfony.

Tous ces sponsorings donnent aux entreprises de la visibilité dans la communauté Symfony. Si vous êtes intéressés, vous pouvez nous contacter à partir de ce lien.

Merci Nicolas !

Vous avez besoin d’aide pour passer sur Symfony 7 ? SensioLabs vous accompagne avec son offre Montée de Version. Ecrivez-nous sur sensiolabs.com pour en discuter.