Menu
Menu

Nous contacter

01 82 83 51 70 infos@globalis-ms.com

6B rue Auguste Vitu

75015 Paris, France

Globalistories

Le 12 décembre 2022 par Julien Oger

SymfonyCon 2022 en 4 conférences clés !

« Retour

Un petit mois après le Forum PHP de l’afup se tenait un autre grand rendez-vous pour la communauté PHP : la SynfonyCon 2022 !

Cet événement international autour du Framework Symfony avait lieu cette année en France, après 2 ans de disette (annulation liée au Covid) et une édition 2019 à Amsterdam.

C’est grâce à notre partenaire Plateform.sh que Mehdi (développeur) et Julien (Directeur de projet) ont pu assisté à cet événement qui se déroulait (une fois n’est pas coutume) à l'Hôtel Marvel de Disneyland Paris. 

Nous ne reviendrons pas dans cet article sur le cadre exceptionnel de cet endroit :) et vous proposons cette fois un retour un peu plus technique des 4 conférences les plus marquantes de ces 2 jours. Des retours qui vont très certainement alimenter la veille Symfony de nos équipes sur les prochains mois.

Conférence #1 - GNAP: The future of OAuth

La première conférence de cette SymfonyCon 2022 nous présente Gnap. Quest ce que Gnap ? Gnap est tout simplement un protocole d'autorisation de nouvelle génération en cours d’élaboration.

Et son but est simple: réussir la ou OAuth peine. Bien que le protocole OAuth soit largement utilisé dans la majorité des projets, plusieurs problèmes viennent régulièrement son nom. D’abord, son design centré navigateur, qui était évident en 2012, devient trop contraignant pour l’”Internet of Thing” ou même son intégration dans des applications mobiles.

Ajouté à cela sa mauvaise Developer Experience (DX) et les nombreux problèmes de sécurité découverts et corrigés dans la version 2.1. 
Pour pallier cela, plutôt que d’incrémenter sur de mauvaises bases, Gnap propose de repartir sur des bases saines et de corriger les problèmes fondamentaux de OAuth (suppression de la liaison avec les navigateurs, meilleur DX, ajout de sécurité à la base du protocol).

Conférence #2 - Painless authentication with Access Tokens

Pour cette conférence, Mathieu Santostefano part du constat que de nombreux développeurs symfony se sont déjà fait : la mise en place d’authentification par token est rébarbatif et se duplique souvent entre chaque projet. Sur Symfony 6.1 et inférieur, le développeur doit s’occuper de l’extraction du token ainsi que de la gestion de l’erreur lors du traitement. Ces étapes sont très souvent gérées de la même façon dans différentes
applications, ce qui nous oblige à répéter les mêmes boutons de code dans 90% des applications que nous développons.

Dans Symfony 6.3, toute la partie répétitive peut maintenant être gérée automatiquement par le Framework via la configuration. Le token sera automatiquement extrait, et le header WWW-Authenticate sera automatiquement ajouté en cas d'échec de l’authentification.Bien que ce changements puisse paraître léger, je trouve qu’il est significatif de la volonté des mainteneur de symfony d'améliorer l'expérience développeur

Conférence #3 - Decoupling an application with Symfony Messenger

A travers un exemple concret d’API, David Buchmann nous montre tous les bénéfices (mais aussi les risques) que l’on peut avoir en utilisant un système de queuing, et plus particulièrement le composant Messenger. 

Le principe est simple: plutôt que d'exécuter l’ensemble des tache de façon synchrone dans l’application, nous allons différer l'exécution d’une partie du code (souvent une tâche lourde et/ou longue) en envoyant un message à notre queue.

Ce message sera traité de façon asynchrone soit à la date spécifié, soit lorsque la queue sera libre. Mais attention à ne pas confondre avec l’architecture microservices ! 
Ici David y trouve plus un désavantage à devoir maintenir plus de 30 microservices donc 30 applications différentes. Alors que découpler son application permet déjà une meilleure flexibilité et une meilleure robustesse.

Conférence #4 - PainleFrankenPHP: a modern application server for Symfony appsss authentication with Access Tokens

FrankenPHP, le nouveau projet de Kevin Dunglas, est très récent. Et pourtant il a déjà fait couler pas mal d’encre. FrankenPHP est un nouveau SAPI écrit en Go (Server Application Programming Interface) conçu spécialement pour les applications PHP. Ce SAPI, basé sur Caddy, permet de containeriser l’ensemble du serveur sans dépendre d’un service externe (par exemple PHP-FPM). 

De plus, il a été pensé pour permettre l’utilisation de HTTP/3 et notamment de nouvelles fonctionnalités tel que les early-hints qui permettent de charger de manière asynchrone l’ensemble des ressources d’une page. 

Last but not least, FrankenPHP intègre un worker mode permettant de construire une seule fois son application au démarrage. De ce fait, l’application est gardée en mémoire et toutes les requêtes sont traitées sans avoir besoin de redémarrer l’application. Attention cependant, ce mode de fonctionnement peut entraîner des fuites de mémoire. C’est donc à nous, développeurs, de nous en occuper. Franken PHP est toujours fortement déconseillé en production, cependant de nombreux framework ont été testé.

Le mot de la fin

L'avis de Mehdi

Cette édition 2022 de la SymfonyCon restera longtemps gravée dans ma mémoire. Aussi bien pour le lieu choisi (l'hôtel New York de Disneyland est vraiment magnifique) que pour le contenu des différentes conférence et les personnes rencontrées là-bas. Sans oublier la qualité des intervenants qui ont su transmettre leur passion. Un grand merci à Globalis de m'avoir permis de participer à ma première conférence consacrée à mon Framework de cœur. La première d'une longue série je l'espère !


Article précédent Article suivant