SymfonyCon Vienna 2024 se rapproche ! Du 3 au 6 décembre 2024 Réservez votre billet


L’essentiel sur Symfony 7 avec Nicolas Grekas

· Elise Hamimi · Temps de lecture: 4 minutes
Interview Nicolas Grekas Symfony 7 EN

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 avant tout l’aboutissement de deux ans de développement depuis la dernière grande version 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 identique à la version Long-Term Support, sauf que les fonctionnalités dépréciées ont été retirées. Symfony réussit ainsi à conjuguer stabilité et innovation.

La stabilité, car les processus de développement du framework sont encadrés, permettant une montée de version facile. Il n’y a pas de rupture majeure entre les versions, c’est une évolution continue. Symfony 7 s’inscrit dans le fil directeur de nos développements depuis la sortie de Symfony 2 en 2012.

En même temps, Symfony encourage l’innovation et offre aux développeurs les dernières avancées technologiques. C’est la communauté qui contribue et assure un « nettoyage » du code tous les deux ans, libérant les fonctions non utilisées.

Symfony 7 réussit à nouveau à faire le grand écart entre 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.

Comme toujours, un effort particulier est mis sur l’amélioration de la performance et de la sécurité. Symfony 7 suit les standards de sécurité. Par exemple, l’augmentation des prérequis du protocole HTTPS. Symfony 7 permet aussi la mise en place des CHIPS cookies qui respectent mieux la vie privée des utilisateurs.

Enfin, Symfony 7 nécessite PHP 8.2 et exploite pleinement les nouvelles fonctionnalités de PHP 8.2.

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

Symfony 7 apporte beaucoup de modernité et permet aux développeurs de créer des fonctionnalités plus innovantes.

Grâce à PHP 8.2, les attributs sont désormais très présents dans Symfony 7. Apparus avec la sortie de PHP 8, ils existaient déjà dans Symfony 6, et seront encore plus présents dans Symfony 7. Les attributs permettent à un développeur d’exprimer les besoins de son application de manière beaucoup plus efficace qu’auparavant. Le code devient ainsi 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’avant 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 comprendre 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 lisibilité du code est améliorée et plus explicite. Les outils d’analyse statique fonctionnent mieux, permettant de déceler plus tôt les problèmes dans le processus de développement.

Toutes ces nouveautés améliorent considérablement 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 exploite tout le potentiel des nouveautés de PHP 8.2 pour offrir des fonctionnalités adaptées. 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 Symfony s’implique. PHP se structure davantage, et Symfony s’est engagé dans ces travaux en contribuant 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 Sulu.

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 l’instauration du chemin de migration continue, la montée de version est guidée entre les versions majeures de Symfony.

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

Mettre à jour son projet en Symfony 6.4

S’assurer que le code ne génère aucune notice de dépréciation

Passer à PHP 8.2

Faire la mise à jour vers Symfony 7, en vérifiant 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 est plutôt mesuré.

A quel moment passer à Symfony 7 ?

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

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

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, certaines bibliothèques utilisées dans des projets pourraient ne pas être prêtes à fonctionner avec Symfony 7. Ces problèmes se résoudront 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 vous assurer que vos bibliothèques soient compatibles avec Symfony 7 et vous en ferez bénéficier toute la communauté.

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

Symfony 7 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 ». Cela signifie 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 choisir une technologie éprouvée et 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 offrent aux entreprises une visibilité dans la communauté Symfony. Si vous êtes intéressés, vous pouvez nous contacter via ce lien.

Merci Nicolas !

Besoin d’aide pour passer sur Symfony 7 ? SensioLabs vous accompagne avec son offre Montée de Version. Écrivez-nous sur sensiolabs.com pour en discuter.

Image