L’essentiel sur Symfony 5 : Les nouveautés à retenir

« Interview avec Nicolas Grekas » (1/2). La dernière version majeure de Symfony a été mise en ligne à la SymfonyCon 2019 à Amsterdam. Que faut-il savoir de Symfony 5 ? Dans cette première partie, Nicolas Grekas, de la core team de Symfony, nous explique les nouveautés de Symfony 5 par rapport aux versions précédentes.

interview-symfony5

Jules Daunay : Bonjour Nicolas, peux-tu nous présenter les nouveaux composants introduits par Symfony 5 ?

Nicolas Grekas : Bonjour Jules. Symfony 5 a introduit trois nouveaux composants exclusifs. Le premier, ErrorHandler, est en fait la réécriture d’un composant existant pour la gestion des erreurs. Les deux suivants, String et Notifier, ne figurent pas dans Symfony 4.4, car ils étaient labellisés expérimentaux à la sortie de Symfony 5.

String sert à gérer des chaînes de caractères orientées objet et à assurer une gestion complète d’unicode, permettant ainsi d’assurer une compatibilité avec tous les caractères disponibles dans tous les langages. Notifier facilite l’envoi de notifications sur différents types de canaux (emails, SMS, canaux Slack, etc.) depuis une application Symfony. C’est un composant que je qualifierais de « haut niveau », c’est-à-dire qu’il se construit par-dessus d’autres composants existants.

Symfony 5 retire également le label « expérimental » aux composants Messenger, Mailer et HttpClient. Ils ont atteint la maturité suffisante pour être intégrés au tronc commun de Symfony 5.

JD : En plus des composants, quelles sont les fonctionnalités nouvelles offertes par Symfony 5 ?

NG : Il y a énormément de nouveautés dans Symfony 5 et elles sont toutes répertoriées dans la section dédiée sur symfony.com. Cependant plusieurs orientations se détachent. La sécurité a toujours été un enjeu central de Symfony et la nouvelle version Symfony 5 approfondit ce parti pris. Symfony 5 introduit et continue d’améliorer des mécanismes de sécurité pour renforcer les contrôles d’accès des applications.

Ainsi, par exemple, la gestion des secrets, les tokens d’API, les mots de passe, etc. sont des informations qui peuvent désormais toutes être chiffrées. Dans la même veine, Symfony 5 permet de migrer automatiquement les mots de passe vers les algorithmes les plus sécurisés.

En plus de la sécurité, la performance n’a pas été laissée de côté. Symfony 5 introduit notamment le support du preloading qui permet d’améliorer de 15 % la performance d’une application.

JD : On a parlé un peu de performance et de sécurité. Et l’expérience de développement ?

NG : Il y a un souci constant dans Symfony d’arriver à concilier trois exigences majeures : la meilleure performance possible, une architecture logicielle flexible et une excellente expérience utilisateur. Dans cet esprit, la version 5 de Symfony veille à toujours avancer sur ces trois plans, sans en désavantager un par rapport à l’autre. C’est un impératif intégré dès la conception de nouvelles fonctionnalités. La communauté est capitale dans la réalisation de ce triple objectif. C’est elle qui apporte la richesse de points de vue et de besoins qui permettent de comprendre comment y parvenir.

JD : Symfony 5 semble aller encore plus loin que Symfony 4 dans la mise à disposition de briques clés en main, qui automatisent les tâches. Qu’en est-il réellement ?

NG : Effectivement, les conventions introduites par Symfony 4 sont renforcées dans Symfony 5. Elles facilitent la prise en main de Symfony par le développeur et améliorent l’efficacité des développements.

L’automatisation de la configuration de Symfony passe par deux éléments : d’abord Flex, puis ensuite le moteur d’injection de dépendances. Ensemble, ils permettent de n’avoir à configurer que les cas particuliers. Pour tous les autres cas, il suffit de se conformer à quelques conventions pour produire le résultat attendu. Symfony 5 introduit de nouvelles conventions, qui permettent par exemple de remplacer certaines classes spéciales (dites « compiler pass ») par quelques lignes déclaratives dans des fichiers de configuration.

En parallèle, Symfony 5 met aussi en place des composants de « haut niveau » dont je parlais un peu plus tôt, par exemple Mailer et Notifier. En effet, la base du code de Symfony est aujourd’hui suffisamment mûre et vaste. Elle peut fournir des fonctionnalités abouties, des briques clés en main. C’est l’une des nouveautés de Symfony 5 qui devrait se poursuivre dans les prochaines versions de Symfony.

Retrouvez ici la suite de l’interview de Nicolas Grekas sur les raisons de migrer vers Symfony 5.