Découvrez nos offres pour faire du digital le levier de votre croissance !
Téléchargez le Guide Ultime de gestion de projet digitale pour vous aider à piloter vos transformations et faire les bons choix !
Voici donc un résumé de quelques talks de cette 4ème édition du SymfonyWorld online.
Comme à son habitude, Fabien Potencier (CEO de Symfony) a su nous embarquer dans son récit lors de sa keynote d’ouverture. Il nous a expliqué comment un bug dans le composant ExpressionLanguage de Symfony l’a conduit à travailler sur une nouvelle version de Twig.
L’histoire commence par un test fonctionnel, exécuté via Blackfire, qui s'est mis à échouer après la refonte du site de Symfony.
Ce test permet de vérifier la présence d’un span “Newer posts” sur la 1ère page du blog. En inspectant le DOM, le développeur constate que cet élément est bien présent, donc pour quelle raison le test échoue-t-il ? Est-ce le test qui est mal écrit ?
Après de longues heures de debug, il s’est avéré que l’opérateur “matches” utilise la fonction preg_match de PHP. Cette fonction émet un warning lorsque la regex à matcher est invalide, causant l’échec du test.
Fabien a donc décidé qu’au lieu de juste corriger son test, il serait bienvenu de modifier le composant ExpressionLanguage de Symfony, pour que matches émette une erreur plus parlante lorsqu'une expression régulière invalide lui est passée. C’est en donnant l’exemple qu’il se permet d’insister sur l’importance de la participation de chacun au projet open source qu’est Symfony. C’est avec la contribution de la communauté que l’outil s’améliore : un problème que l’on rencontre va forcément être rencontré par quelqu’un d’autre.
Mais ce n’est pas encore fini (après on s’étonne quand les devs timesheetent 3 jours sur un “tout petit” bug !) : le composant ExpressionLanguage de Symfony étant une version simplifiée des expressions Twig, Fabien s’est également attelé à corriger “matches” pour le langage de templating. En faisant ce correctif, il s’est rendu compte que le code de Twig 3 était vieillissant et qu’il serait peut-être temps de sortir une nouvelle version ! Celle-ci contiendrait la gestion des arguments nommés, le correctif d’incohérences sur la précédence des opérateurs “not” et “??”, la revisite des macros, etc... Et par la même occasion, pourquoi pas faire de cette nouvelle version de Twig, un composant de Symfony 6.2 ?
Pour son talk, Nicolas Grekas a choisi de nous présenter les nouveautés de la version 6.1 de Symfony, qui vient tout juste d’être publiée en mai 2022.
Il commence sa présentation par un rappel des process mis en place et utilisés par les membres de la core team Symfony (dont il fait d’ailleurs partie !) afin de maintenir la stabilité du framework tout en continuant de sortir des nouveautés.
Une nouvelle version majeure (4.0, 5.0, 6.0, ...) est prévue tous les 2 ans. Pour chaque version majeure sort une version LTS (Long Time Support), maintenue 3 ans en termes de bugs, et 4 ans en termes de sécurité.
Une nouvelle version mineure (5.1, 5.2, 5.3, ...) sort tous les 6 mois. Entre chaque version les règles de rétrocompatibilité sont très strictes, afin de permettre aux développeurs de passer en toute confiance d'une version mineure de Symfony à la suivante.
Après avoir rappelé que la version 6.0 a surtout servi à supprimer le code déprécié en version 5, Nicolas passe aux nouveautés de Symfony 6.1 (la liste complète est disponible ici) :
Lors de sa conférence, Alexandre Daubois (Développeur chez SensioLabs) nous a présenté 5 composants Symfony peu connus qui valent pourtant le détour :
Il remplace les fonctions PHP telles que exec, passthru, shell_exec et system.
D’autres conférences non détaillées dans cet article ont aussi été très intéressantes, mais méritent d’être vues ou détaillées dans un article dédié, plutôt que résumées ici :
Pour conclure, en tant que développeur PHP et Symfony, il est toujours bon d’avoir vent des dernières nouveautés et d’astuces utiles. Cette fois encore, les speakers nous ont gâtés par leurs présentations de qualité, aux sujets intéressants. Les conférences de cette nouvelle édition sont d'ores et déjà disponibles en replay sur le site de Symfony (à condition d’acheter un ticket d’entrée !).
Vivement la Winter Edition !
Crédits photos :