Symfony World Online 2021, édition chocolat chaud au coin du feu

Symfony World Online 2021, édition chocolat chaud au coin du feu

À l’instar de 2020, cette conférence Symfony d’hiver s’est déroulée en ligne. Un événement que nous aurions tous aimé vivre en physique pour célébrer la sortie de Symfony 6.0, mais ça ne sera que partie remise pour (on l’espère 🤞) dans quelques mois. Retour sur ces deux journées de conférences dédiées à notre framework préféré !

Keynote « Removing SPOFs »

On s’attendait à une conférence sur les SPOFs techniques qui peuvent exister dans une stack applicative, mais Fabien nous a présenté sa vision de l’open source, et des SPOFs tant humains que logiciels qui peuvent mettre en danger un projet.

Construire et maintenir un projet de l’envergure de Symfony est très compliqué. Cela demande beaucoup d’investissement, en termes de temps, d’argent et d’énergie. Assurer la continuité du projet, quoi qu’il puisse arriver, doit être pris en compte le plus tôt possible : créer une Core Team, former ses membres, partager le savoir, donner accès aux outils internes, et enfin open sourcer un maximum de choses. Et c’est exactement ce que Fabien est en train de faire, avec l’ajout récent de nouveaux membres dans la Core Team, comme notre très cher JoliCodeur Mathieu 🎉 ainsi que la release de symfony-cli. L’objectif de tout cela étant que Symfony ne repose pas uniquement sur les épaules de Fabien.

Vulnerabilities and Security round trip

Jérémy a un rôle particulier au sein de la Core Team, il est chargé de la gestion des problèmes de sécurité.

Lors de sa conférence, Jérémy nous a présenté une série de failles, certaines faciles à reproduire, mais toujours faciles à mitiger, ainsi que ses conseils pour garantir un bon niveau de sécurité dans nos applications.

Pleines d’excellents conseils, nous vous invitons très chaleureusement à lire ses slides. Vous y trouverez très certainement de quoi renforcer un peu plus la sécurité de vos applications.

The New Testing Landscape: Panther, Foundry & More

Il existe beaucoup de manières de tester une application de manière automatique.

Ryan nous a présenté sa vision, et nous l’avons trouvée plutôt intéressante. Il sépare ses tests en trois parties : les tests unitaires, les tests d’intégrations, et les tests end-to-end. Tous ces tests sont exécutés par PHPUnit. En fonction du besoin, chaque test étend respectivement TestCase, KernelTestCase, WebTestCase.

Pour gérer ses fixtures il utilise le package foundry qui nous semble très prometteur. Seul petit bémol, nous n’aimons pas beaucoup le fait de réinitialiser par défaut la base de données entre chaque test, cela ralentit très fortement l’exécution de la suite de tests.

Ensuite Ryan nous a présenté Panther pour exécuter des tests E2E avec le support de JavaScript. Cependant, nous préférons utiliser cypress.io qui est plus mature et bénéficie selon nous d’une meilleure DX.

Pour conclure, il nous a présenté certains packages de chez zenstruck pour rendre l’écriture de tests plus agréable. Pour information, ces packages ont été écrits par un nouveau membre de la Core Team : Kevin Bond. Félicitations à lui !

Vous pouvez retrouver ses slides sur speakerdeck pour en apprendre davantage.

BC Promise demystified

Robin, en tant que core développeur de Symfony prend un grand soin à ne pas casser vos applications lorsque vous mettez à jour Symfony. Mais comment fait-il ?

Symfony a adopté SemVer depuis plusieurs années, et va même plus loin. Robin nous a expliqué en détail comment Symfony arrive à créer un “Continous Upgrade Path”, c’est-à-dire une méthodologie pour mettre à jour Symfony tout en facilitant la mise à jour des applications.

La deuxième partie des ses slides reprend ce qu’il est recommandé ou non de faire dans une application pour éviter au maximum d’avoir des problèmes lors d’une mise à jour de Symfony. Si l’on veut résumer cette partie en une phrase : préférez la décoration à l’extension de classe de Symfony.

Using the SecurityBundle in Symfony 6

Au fil des versions, la gestion de la sécurité a beaucoup évolué. Symfony 6 utilisera le nouveau système basé sur des Authenticators. Wouter, l’auteur de ce nouveau système nous a expliqué comment l’utiliser à travers plusieurs cas pratiques. Mais n’ayez pas peur, c’est assez proche des Guards. La mise à jour devrait être assez facile.

Nous vous encourageons à lire ses slides pour apprendre à utiliser le nouveau système d’authentification

Symfony and Docker: A Refreshing new Experience

Kevin est revenu sur les bases de Docker et nous a annoncé le support officiel de Docker par Symfony. Concrètement, Symfony Flex va mettre à jour vos fichiers Dockerfile et docker-compose.yml en fonction des packages PHP installés. Par exemple, il est capable d’installer PostgreSQL, un serveur mail, Mercure, etc.

Il utilise par défaut PHP avec la SAPI FPM, et le serveur web Caddy. Il est aussi possible de désactiver le support si on préfère gérer manuellement sa configuration. Enfin, le support pour la production est en cours, et devrait bientôt arriver officiellement.

Static code analysis

Alexander a fait une présentation de deux outils d’analyse statique, PHPStan et Psalm ainsi que comment les utiliser, les configurer et nous a donné ses conseils pour construire un projet de manière robuste sans pour autant être trop contraint par ces outils. Il recommande notamment de les installer dès le début d’un projet avec un niveau strict, mais, sur des codebases existantes, de monter les niveaux progressivement en utilisant la baseline, une feature qui permet d’ignorer temporairement certaines erreurs afin d’avoir une intégration fluide de l’outil.

Give your Traditional Site the “single-page-app” feel with Turbo

Le dernier talk a été magistralement orchestré par Ryan. Il est revenu sur l’intégration de stimulus dans Symfony ainsi que de turbo et des streams.

Ce fût aussi l’occasion d’annoncer la release de Symfony UX 2.0, avec le support de Stimulus 3.

Pour rappel, stimulus est un framework frontend très léger. Il propose d’architecturer son frontend de manière totalement différente de React, Vue.js, etc. en dynamisant le HTML rendu par twig. Vous pourrez retrouver plus d’information dans les slides de la conférence

Conclusion

Cette nouvelle édition du Symfony World était encore online, mais Grégoire a eu la chance de retrouver une partie de la Core Team réunie à Paris le temps d’une soirée. C’était l’occasion de revoir des membres historiques et de rencontrer certains nouveaux (👋 Thomas, c’était un plaisir) pour échanger sur le futur de Symfony.

Environ un tiers des conférences avait déjà été données lors du Symfony World Summer edition. Nous vous invitons aussi à lire notre résumé pour en apprendre davantage.

N’oublions pas de mentionner que la démo de Symfony est sortie en version 2.0, avec le support de Symfony 6.0

Le Symfony Live Paris 2022 a été annoncé, il se tiendra en présentiel (🤞) à la Cité Universitaire de Paris, les 7 et 8 avril 2022. N’hésitez pas à soumettre des sujets. Nous espérons vous y retrouver 💛

Nos formations sur le sujet

  • Logo Symfony

    Symfony

    Formez-vous à Symfony, l’un des frameworks web PHP les plus connus au monde

  • Logo Symfony avancée

    Symfony avancée

    Décou­vrez les fonc­tion­na­li­tés et concepts avan­cés de Symfo­ny

blog comments powered by Disqus