Symfony 8 : Stabilité, sécurité et innovation au service des développeurs
À l’occasion du lancement de Symfony 8, nous avons rencontré Nicolas Grekas, figure emblématique de l'open-source et contributeur majeur du framework. Entre nouveaux composants JSON, durcissement de la sécurité et intégration native avec PHP 8.4, Nicolas nous explique pourquoi cette version 8 s'inscrit dans la continuité des versions précédentes de Symfony, sans bousculer les entreprises. Un point complet pour comprendre les nouveautés et aborder votre montée de version sereinement.
SensioLabs : Nicolas, une nouvelle version majeure de Symfony vient de sortir. Quelles sont les grandes nouveautés de Symfony 8 ? Doit-on s'attendre à une révolution ?
Nicolas Grekas : Pas de révolution, mais une évolution chirurgicale. L’idée de Symfony 8 est de continuer à outiller les développeurs pour des projets modernes et exigeants. Nous introduisons ainsi trois nouveaux composants :
JSON Streamer : Une API ultra-performante pour manipuler de très gros volumes de données JSON sans exploser la mémoire.
JSON Path : Un outil pour naviguer et extraire des données dans des documents JSON complexes.
ObjectMapper : Un composant qui va simplifier la vie de tous ceux qui utilisent des DTO (Data Transfer Objects). Il facilite grandement le passage de données d'un sous-système à un autre, ce qui est crucial pour les architectures modernes.
Symfony 8 ne réinvente pas la roue, il affine les outils déjà existants en fonction de l’évolution des pratiques de développement.
On parle beaucoup de "Hardening" pour cette version. De quoi s'agit-il exactement ?
C’est un point crucial. Avec Symfony 8, nous avons décidé de serrer les vis. Par le passé, Symfony était parfois moins regardant pour faciliter l'intégration avec des systèmes tiers. Aujourd'hui, les menaces ont évolué et sont plus présentes pour les développeurs.
Nous avons donc renforcé les paramètres par défaut pour que le comportement du framework soit plus strict. Ce n'est pas parce qu'il y avait des failles de sécurité, mais parce qu'en verrouillant davantage les choses nativement, on prévient de façon proactive des risques potentiels. C'est une démarche de "sécurité par défaut" renforcée.
Côté Developer Experience (DX), on sent une maturité croissante sur les attributs PHP...
Absolument. Depuis PHP 8, nous découvrons sans cesse de nouveaux usages. Dans Symfony 8, nous avons ajouté de nouveaux attributs pour rendre le code encore plus expressif et découplé. C'est particulièrement visible pour l'écriture des commandes Symfony ou des extensions Twig.
Je voudrais d'ailleurs avoir une pensée pour Ryan Weaver, qui nous a quittés cette année. Son obsession pour la formule "Making the Symfony Experience Exceptional" reste notre boussole. Symfony 8 est le reflet de cet héritage : rendre le développement fluide et agréable pour ses utilisateurs.
Pour une entreprise, quel est l'impact réel des dépréciations dans cette version 8 ?
C'est la question que tout le monde se pose, mais je veux être rassurant : il n'y a pas de changement brutal. Symfony 8 retire simplement les fonctionnalités dépréciées ces deux dernières années.
Si vous avez suivi les avertissements dans vos logs sur Symfony 7, vous n'aurez aucune surprise. Tout ce qui est retiré a été documenté. Il n'y a pas de remplacement d'outil par un autre, juste du nettoyage et de la simplification. Mon conseil est simple : lisez la documentation de mise à jour. Nous travaillons d'arrache-pied pour que la montée de version vers Symfony 8 soit la plus simple possible.
Symfony 8 nécessite PHP 8.4. Peut-on parler d'une véritable osmose entre le framework et le langage ?
Tout à fait. C'est une force de l'écosystème. Symfony 8 exige PHP 8.4 car nous utilisons nativement les Lazy Objects et le Parser HTML 5, qui sont désormais intégrés à PHP.
Ce qui est intéressant, c'est que la communauté Symfony a activement poussé les Lazy Objects au sein de la Fondation PHP. Cela prouve que PHP se développe aussi dans l'intérêt de Symfony, et vice versa. Cette synergie permet d'innover de concert. Notez d'ailleurs que les futures versions mineures de Symfony 8 (8.1, 8.2, etc.) contiendront des fonctionnalités qui exploiteront encore mieux PHP 8.5.
Quelle stratégie de support conseilles-tu aux entreprises ?
Il n'y a aucune urgence à migrer si votre projet est stable et aucun "FOMO" (Fear Of Missing Out) à avoir si vous n’êtes pas encore sur Symfony 8. En parallèle de Symfony 8, nous avons sorti Symfony 7.4, la version LTS (Long Term Support) de Symfony 7, qui sera maintenue pendant 3 ans.
Pour les nouveaux projets : Démarrez sur Symfony 8 sans hésiter.
Pour les projets existants : La LTS de Symfony 7 est parfaite si vous n'avez pas besoin des nouveaux composants et que vous voulez de la stabilité long terme avec les derniers correctifs de sécurité.
L'objectif de la communauté est que tout le monde soit à jour, mais chacun à son rythme.
Et si vous avez besoin d’être accompagné plus spécifiquement dans votre montée de version vers Symfony 8, l’équipe de SensioLabs est disponible pour vous aider avec des experts rompus aux montées de version sur Symfony.
Un mot sur Symfony UX et Symfony AI : sont-ils liés au cycle de Symfony 8 ?
C’est important de clarifier ce point : Symfony AI (qui vient de passer en version 0.1) et Symfony UX sont indépendants. Ils ont leurs propres cycles de publication. Pourquoi ? Parce que l'IA bouge trop vite pour attendre une version de Symfony tous les six mois. La communauté a besoin de cette agilité pour innover. Ce sont des briques que vous pouvez ajouter très facilement sur Symfony 8, mais elles vivent leur propre vie. C'est cette synergie organique entre un noyau stable et des briques d'innovation qui fait la force de notre modèle open source.
Merci beaucoup Nicolas Grekas 💚