La SymfonyCon 2022 s’est tenue il y a quelques semaines, les 17 et 18 novembre 2022. Il s’agit d’un événement rassemblant l’ensemble de la communauté Symfony, représentée par des développeurs et autres acteurs venus du monde entier !
Nous avons eu la chance d’y participer le jeudi 17, dans un lieu atypique : l’hôtel Marvel de Disneyland Paris, ici même où avait eu lieu la dernière édition du Forum PHP un mois auparavant.
Voici un retour sur les moments forts de cette journée !
La Keynote d’ouverture
Pour ouvrir le bal, Fabien Potencier a fait un focus sur deux composants expérimentaux qui pourraient être intégrés au futur Symfony 6.3 :
- Webhook component : simplifier la gestion des webhooks à travers un ensemble de configurations prédéfinies.
- RemoteEvent component : faciliter le traitement des événements externes (valider le contenu d’un retour de paiement par exemple).
Il a, bien entendu, rappelé l’importance des contributeurs et de la communauté, sans qui Symfony ne serait pas le Framework qu’il est aujourd’hui.
Unleashing the power of lazy objects in PHP
Nicolas Grekas, de la Core Team Symfony, nous a présenté le concept très intéressant de Lazy Loading d’objets en PHP : des objets, souvent lourds, chargés uniquement lorsqu’ils sont utilisés pour obtenir de meilleures performances globales.
Il a passé en revue les différents cas d’usage (Lazy Initialization, Value Holders, Virtual Proxies, Ghost Objects) puis nous a présenté son travail sur la simplification de ces usages dans Symfony 6.2, notamment à travers 2 nouveaux traits : LazyGhostTrait et LazyProxyTrait qu’il détaille dans cet article.
Observability tools: Who’s who?
Lorsque l’on développe une application, il est important de s’entourer d’outils d’analyse, aussi bien pour prévenir les bugs que pour monitorer le comportement de l’application en conditions réelles.
Tout cela porte un nom : l’observabilité. C’est ce que nous a présenté Jérôme Vieilledent, de chez Platform.sh, à travers plusieurs outils :
- Les Blueprints : analyser le code de manière statique pour identifier facilement les erreurs durant la phase de développement (SymfonyInsight, PHPStan).
- La Black Box : simplifier l’accès et la centralisation des logs applicatifs afin de faciliter l’analyse des erreurs potentielles (Sentry).
- Application Metrics : monitorer l’état de l’application en temps réel pour intervenir rapidement et efficacement en cas de problème (Blackfire).
Chez Dn’D, nous utilisons et recommandons au maximum ces outils à nos clients, car une application correctement observée est l’une des clés d’un projet maîtrisé.
PHPStan: Advanced Types
Pour parler de l’outil PHPStan, qui de mieux placé que Ondřej Mirtes, son créateur en personne ?
PHPStan fait partie de la famille des outils d’analyse statique de code. L’idée est d’analyser le code d’une application sans même l’exécuter, et donc d’anticiper la correction d’erreurs pendant la phase de développement.
Pour fonctionner, l’outil se base non seulement sur la PHPDoc native, mais aussi sur une syntaxe avancée spécifique permettant de donner des détails précis sur le code.
Ondřej nous a également présenté le principe de Stub Files, qui permet de réécrire, ou plutôt de documenter le code d’une dépendance (librairie).
The PHP Stack’s Supply Chain
Il n’existe pas, ou très peu, de développeurs Full Stack. Du moins, c’est l’avis de Sebastian Bergmann, cofondateur de thePHP.cc. Quand on y réfléchit, ce n’est pas totalement faux.
Si l’on parle de Full Stack, il faut prendre en compte l’ensemble des dépendances de la Stack ! Ceci se résume dans nos systèmes modernes à de nombreux composants, tous nécessitant une expertise très différente l’une de l’autre. Cumuler toutes ces compétences est donc une chose très rare, voire insensée.
Sebastian Bergmann – lien de sa présentation
Vous l’aurez compris, il s’agit surtout pour Sebastian de captiver le public pour développer son sujet : la complexité de nos Stacks modernes et les risques que cela comporte.
En effet, plus une application dépend de divers composants, plus elle est susceptible de comporter des bugs (ou même des fonctionnalités) impliquant des failles de sécurité.
« Dépendance des composants » – Extrait de https://xkcd.com/2347/ Licence Creative Commons
L’enjeu pour nos applications modernes est donc de parvenir à maîtriser la sécurité de cette Supply Chain. C’est notamment ce qui est proposé à travers le projet CycloneDX.
Parc Walt Disney Studios
Pour terminer cette journée en beauté, l’accès au parc Walt Disney Studios a été privatisé spécialement pour l’évènement ! L’occasion pour les participants de se détendre après une journée riche en apprentissages, et de se rencontrer dans un cadre convivial et pour le moins atypique…
Un grand merci à Patricia et Platform.sh pour leur invitation !