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é !
Section intitulée keynote-quot-removing-abbr-title-single-points-of-failure-spofs-abbr-quotKeynote « 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.
Section intitulée vulnerabilities-and-security-round-tripVulnerabilities 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.
Section intitulée the-new-testing-landscape-panther-foundry-amp-moreThe 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.
Section intitulée bc-promise-demystifiedBC 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.
Section intitulée using-the-securitybundle-in-symfony-6Using 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
Section intitulée symfony-and-docker-a-refreshing-new-experienceSymfony 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.
Section intitulée static-code-analysisStatic 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.
Section intitulée give-your-traditional-site-the-single-page-app-feel-with-turboGive 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
Section intitulée conclusionConclusion
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 💛
Cet article porte sur la conférence Symfony World Online Winter Edition 2021.
Commentaires et discussions
Nos formations sur ce sujet
Notre expertise est aussi disponible sous forme de formations professionnelles !
Symfony
Formez-vous à Symfony, l’un des frameworks Web PHP les complet au monde
Symfony avancée
Découvrez les fonctionnalités et concepts avancés de Symfony
Ces clients ont profité de notre expertise
JoliCode accompagne l’équipe technique Dayuse dans l’optimisation des performances de sa plateforme. Nous sommes intervenus sur différents sujets : La fonctionnalité de recherche d’hôtels, en remplaçant MongoDB et Algolia par Redis et Elasticsearch. La mise en place d’un workflow de réservation, la migration d’un site en Twig vers une SPA à base de…
L’équipe de Finarta a fait appel à JoliCode pour le développement de leur plateforme Web. Basée sur le framework Symfony 2, l’application est un réseau privé de galerie et se veut être une place de communication et de vente d’oeuvres d’art entre ses membres. Pour cela, de nombreuses règles de droits ont été mises en places et une administration poussée…
Pour La Plateforme du Bâtiment, le début d’année 2014 est le moment de mettre à jour le socle technique du site. JoliCode est donc intervenu aux côtés des équipes internes pour réaliser une migration de Symfony2 de la version 2.0 à la 2.3. Au programme : beaucoup de tests unitaires et fonctionnels, l’installation et l’utilisation de Composer, et une…