Accueil Nos publications Blog REX Symfony World Online 2021 Winter Edition

REX Symfony World Online 2021 Winter Edition

Retour sur le Symfony World Online 2021 Winter Edition avec William PINAUD, développeur au sein de notre agence de Limoges et speaker lors de ce grand rendez-vous des développeurs PHP :


Symfony World Online 2021 Winter Edition

Nous débutons ce REX par féliciter l’équipe Symfony pour l’organisation de cette nouvelle édition, Javier, Nicolas, Fabien, Anne-Sophie, Alexander ainsi que toutes les personnes impliquées sur cet événement. Dans l’ombre de ce que certains appellent « la 5ème vague de COVID-19 », le Symfony Work Online 2021 Winter Edition aura lui été un brise-vagues rafraîchissant pour nos esprits, sur lequel nous avons surfé, au dessus de la crise sanitaire.

Cet événement, composé de dix ateliers et vingt-cinq conférences était réparti sur quatre jours. Animées les jeudi 9 et vendredi 10 décembre 2021 sous un format type : 30 minutes par conférence et 10 minutes pour les questions-réponses, nous avions entre 1 et 3 présentations en simultané. À noter l’effort de l’organisation de bien répartir les conférences afin d’en manquer le moins possible.

Les conférenciers et les conférencières étaient invités dans le chat global durant toutes les conférences, y compris les leurs, afin de répondre aux questions à l’écrit avant de passer en direct, en visio pour répondre aux questions restantes dans le chat. Chaque conférence avait sa propre session de chat dédiée, regroupée en quatre espaces parmi lesquels on retrouvait les participants, le chat global et le chat de questions réponses.

Participation de William Pinaud en tant que speaker du Symfony World Online 2021 Winter Edition

Working with Twig in Symfony : tips and tricks

En tant que consultant au sein de l’agence de Limoges, j’ai eu le plaisir d’être invité comme speaker pour animer « Working with Twig in Symfony. » Ceci représente l’une des apogées de ma check-list professionnelle et technique, même si bien entendu j’ai encore bon nombre de choses à accomplir à seulement 37 ans.

La conférence que j’ai conçue vise à expliquer brièvement ce qu’est Twig et son fonctionnement. Twig est un moteur de template conçu pour PHP. Il est rapide, sécurisé et flexible. Mon objectif était de donner un maximum d’astuces afin de l’utiliser efficacement et d’économiser beaucoup de temps. Attaché au concret, j’illustrais tout cela à travers des exemples issus du monde réel de logiciels reconnus et de mon expérience sur le terrain.

La conférence propose :

  • de revenir sur les bases de l’utilité d’un moteur de templates
  • d’expliquer comment fonctionne Twig et où il peut être inclus
  • de donner quelques tips quant à son utilisation : des choses souvent oubliées ou inconnues
  • d’illustrer via un exemple quelques chose qu’on peut mettre en place sur tous les projets ( que nous utilisons nous-mêmes sur les nôtres) : une gestion mise en cache et administrable de blocs de texte libres insérés un peu partout dans les conceptions de sites web
  • de donner un exemple via la gestion GDPR du consentement à l’utilisation des données
  • de fournir des exemples pour comprendre comment étendre Twig et dans quelles conditions
  • de montrer quelques exemples via des logiciels phares du marché utilisant Twig : Drupal, OroCommerce, Sylius, etc.

Vous pouvez retrouver mes slides de présentation ici.

Mes commentaires et mes sous-titres sont également disponibles afin de vous aider dans la compréhension de la présentation. Maintenant que j’ai terminé avec l’auto-promotion, je vous propose mes quelques lignes sur les différentes conférences auxquelles j’ai pu assister et que je souhaite vous faire partager. 

Participation de Fabien Potencier en tant que speaker du Symfony World Online 2021 Winter Edition

Removing SPoFs

Pour la première fois et d’aussi longtemps que je me souvienne, Fabien Potencier, créateur et CEO de Symfony, dont il est le principal développeur, n’a pas ouvert les deux jours de conférences avec un speech de type « quoi de neuf ? ». Voici les différents sujet abordés : 

  • Fabien a beaucoup discuté de l’écosystème PHP et de la PHP Foundation. Il a insisté sur la situation critique actuelle pour ce langage, en opposition diamétrale avec le fait qu’il soit celui ayant supporté le plus de sites web au monde depuis qu’il existe (environ 80%), ainsi qu’abordé l’idée que PHP pourrait avoir à lutter pour sa survie
  • Un rappel de tout ce que la communauté doit à Nikita Popov, Dimitri Stogov et tant d’autres pour leurs compétences et leurs travaux
  • La différence entre open source et gratuit et à quel point,  l’open-source pouvait être peu ou très gratifiant, à un certain prix
  • Il est ensuite revenu sur son expérience en tant qu’entrepreneur et leader sur ses projets. Il a parlé de la somme d’engagements phénoménale qui est requise pour construire des projets à large échelle et fait part du sentiment chanceux et apaisé de les voir tous fonctionner
  • Il a évoqué ensuite son schéma de pensée quand il s’agit de rendre open-source du code fermé et privé qu’il a déjà écrit pour lui
  • C’est pourquoi il a mentionné deux nouveaux projets : le serveur Flex, qui pourrait être maintenant ouvert, et la Symfony CLI, qui se voit désormais séparée du code interne, et de son couplage étroit avec Platform.sh et Blackfire.io
  • Les commandes Symfony Cloud sont désormais remplacées par des commandes et une expérience Platform.sh
  • Pour conclure son éclairant discours, Fabien a rappelé l’état de la société Symfony et de ses employé(e)s qui ont la chance d’être rémunéré(e)s pour leur travail. Un moyen de nous faire prendre conscience du temps et de l’argent nécessaires pour financer les personnes qui maintiennent toutes ces technologies. Une vision que je partage totalement, étant moi-même impliqué sur de très nombreux projets
Participation de Jérémy Derussé en tant que speaker du Symfony World Online 2021 Winter Edition

Vulnerabilities and Security Round Trip

Jérémy DERUSSÉ est un conférencier partisan de la sécurité, et membre à part entière de la Symfony Security Team. La sécurité est toujours un sujet qui attire particulièrement mon attention. L’écologie (écoconception), les données (big data, ML et IA) et la sécurité sont les 3 sujets en hausse depuis les années 2010.

  • Il nous a rappelé quelques vulnérabilités habituelles, donné des explications sur chacune d’entre elles, ainsi que des conseils et astuces pour essayer de corriger la trajectoire
  • Il a parlé de l’« email poisoning » à travers les liens de réinitialisation de mot de passe envoyés par email et la manière de contrecarrer cette faille potentielle en utilisant, par exemple, les paramètres framework.trusted_hosts et framework.trusted_headers
  • Il a insisté sur l’importance de valider régulièrement les applications grâce à https://github.com/fabpot/local-php-security-checker
  • Il nous a aussi conseillé d’essayer dependabot sur GitHub en tant que vérification de dépendances
  • Il a ensuite parlé de désérialisation non sécurisée, une vulnérabilité qui se produit lorsque des données non fiables sont utilisées pour abuser de la logique d’une application, infliger une attaque par déni de service (DoS) ou même exécuter du code arbitraire lors de sa désérialisation (source : ichi.pro). Selon lui, il est sage de désactiver la désérialisation là où cela peut être dangereux et de vérifier les classes autorisées à la désérialisation
  • Des conseils afin de rendre la tâche légèrement plus difficile pour les attaquants sur les logins. Exemple : penser à utiliser des messages les plus génériques possibles pour les échecs d’identification, même si c’est moins pratique pour les utilisateurs(trices)
  • Et pour finir, il a ouvert les discussions sur le DDOS

The New Testing Landscape : Panther, Foundry & More

Notre coach Ryan Weaver, également formidable speaker, est de retour pour nous livrer son feedback sur le testing et nous faire bénéficier de ses nombreux conseils. En voici quelques-uns d’entre eux :

  • Rappelez-vous d’utiliser la commande make:test pour générer des tests
  • Comment utiliser Foundry pour générer des data fixtures mélangées avec Faker
  • Comment remettre à zéro la base de données quand vous avez des tests qu’il utilise et comment on peut affecter ou non les performances des tests
  • Comment faire en sorte que Doctrine puisse automatiquement rafraîchir les entités pour avoir la certitude que les tests mettent bien à jour les données également
  • Comment utiliser Panther pour de la navigation headless et du testing E2E
  • Comment tester sur plusieurs bases de données à la fois
  • Comment utiliser zenstruck/foundry et zenstruck/browser pour simuler des navigateurs


C’était une fois de plus une conférence incroyable de la part de Ryan. Je suis plutôt du genre antagoniste envers les tests, mais ce genre de conférence m’incite à l’être nettement moins, définitivement !

Everything about Symfony 6

Nicolas Grekas est un important contributeur de Symfony avec une double casquette, notamment côté open-source, où il propose de nouvelles fonctionnalités, des corrections de bugs, et accompagne les autres contributeurs presque quotidiennement depuis 7 ans.

Tout le monde monte dans le train de la hype, voilà LA conférence pour laquelle la plupart des gens étaient venus. C’est ici que l’on découvre plus en détails avec quoi on va construire des applications, passer des tests de certification et s’entraîner pendant les prochains mois !

  • PHP 8 : pleins de nouveautés et désormais le prérequis minimal pour Symfony 6
  • Symfony 4.4 fonctionne sur PHP 8.1 grâce au système de dépréciations de Symfony 4-6 et aux choix méthodologiques de montée en version
  • PHP 8.1 démarre 30% plus vite ! Mettez tout à jour et prenez quelques cookies
  • Au cours des 6 derniers mois, 1300 pull requests ont été fusionnées, environ 5000 fichiers ont été modifiés pour Symfony sur Github
  • Rajoutez des types de retour sur tout votre code. Symfony 6 utilise ce mécanisme nettement plus que précédemment. Ceci va grandement aider l’analyse statique dès lors qu’il s’agira d’avoir affaire à des types mélangés ou mal documentés
  • Wouter a mis en ligne un outil pour ajouter automatiquement les types de retour à votre code !
  • Les commandes sont maintenant décrites par des attributs
  • Les BC breaks sont désormais de toutes parties, plus aucune dépréciation de 5.X
  • Tout ce qui a été ajouté dans Symfony 5.1-5.4 fait désormais partie de Symfony 6, Comme par exemple l’auto-complétion dans BASH


Enfin, dans un futur proche, j’aimerais vraiment que le bundle de Titouan HTMLSanitizer devienne un composant du core. Je vous encourage à lever les pouces sur GitHub.

Participation de Kévin Dunglas en tant que speaker du Symfony World Online 2021

Symfony and Docker: a refreshing new experience

Une nouvelle magnifique conférence de Kévin DUNGLAS, Fondateur de Les-Tilleuls.coop (coopérative de travail associé). Créateur de API Platform, Mercure.rocks, Vulcain.rocks et de certains composants Symfony.

Cette fois, la conférence était vraiment accessible et essentiellement orientée vers l’explication de comment tout se connecte et comment fonctionne la conteneurisation avec Docker.

Étant donné que je vais moi-même rendre public un projet de template contenant une stack complète de technologie qui permettent aux projets Symfony et Docker de fonctionner à merveille, je n’ai pas appris grand-chose travers cette conférence, mais elle était définitivement rafraîchissante. Je vous invite fortement à aller la visionner en replay.

Give your Traditional Site the « single-page-app » Feel with Turbo

Une seconde conférence animée par Ryan WEAVER afin de nous donner un aperçu de ce qu’il est possible de faire avec le composant Symfony UX et Stimulus.

Il a d’abord passé en revue les bases de Stimulus en 5 minutes, comment utiliser les contrôleurs et les cibles, et tout ce qui va avec. J’avais VRAIMENT précisément besoin de ça, n’ayant pas encore eu le temps de me jeter sur Stimulus autant que je le voudrais, étant donné que mes projets récents n’en avaient pas encore besoin.

Nous avons ensuite fait une petite balade à travers Stimulus 3, tout ce que ça implique de nouveau (bye bye, IE 11), comment faire fonctionner Turbo, et bien plus encore…

J’ai bien l’intention de rajouter Turbo et Swoop à mes prochains projets. La transition souple entre les pages est quelque chose de vraiment bien, je suis assez impatient d’aller enfin tester ça.

Je dois dire que j’ai vraiment envie de essayer le composant DropZone, par ailleurs.

Merci Symfony

Je tiens à féliciter et remercier l’ensemble de l’équipe Symfony de nous avoir fait vivre ces quatre jours très intenses et très enrichissants pour toute personne passionnée par le développement. Un grand merci de m’avoir permis d’animer une conférence pour la première fois dans cet événement.

Je souhaite également adresser mes remerciements particuliers à Nicolas Grekas pour son indéfectible talent d’organisateur, et à Titouan Galopin pour sa bienveillance et son implication.

Je serai bien entendu présent en 2022, de nouveau en tant que speaker je l’espère. En attendant, je vous invite à aller visionner les replays. La prochaine Symfony World Online Edition aura lieu du 14 au 17 juin prochains.


Par ailleurs, de plus en plus d’évènements comme celui-ci se programment, avec toujours un seul évènement présentiel planifié pour 2022, à Paris, mais toujours bon nombre d’autres rendez-vous sont à venir cette année.

William, expert Web au sein de l’agence de Limoges