Retour sur le SymfonyLive Paris 2022
15 avril 2022
L’édition 2022 du Symfony Live a eu lieu le 7 et 8 avril à Paris pour cette première édition en présentiel. Stéphane Méaudre et moi-même, Lucie Barthes, tous deux développeurs back end, avons eu la chance de nous rendre à la Cité Internationale Universitaire de Paris pour assister à ce bel événement.
Un très beau lieu, qui nous a réservé de belles surprises et nous a permis de découvrir des nouveautés prometteuses !
Découverte de l’évènement SymfonyLive
Le SymfonyLive s’est découpé en 14 conférences captivantes abordant divers sujets autour de Symfony, bien entendu, et de son écosystème.
Au rendez-vous, un partage de bonnes pratiques, des réflexions autour de la stack technique et de nouvelles fonctionnalités.
De nombreux partenaires étaient également présents afin de nous proposer des concours (nous ne sommes malheureusement pas les heureux propriétaires de la trottinette électrique mise en jeu par le sponsor Hiway !), goodies, conseils mais également des démonstrations innovantes. Je pense notamment à Weber qui nous a permis entre 2 cafés (et donuts) de jouer à « Air Draw Challenge », un jeu développé par leurs fans Lab PLANET. Le but étant de faire deviner à une IA un objet en le dessinant dans le vide.
Nous pouvons affirmer que l’ennui ne s’est jamais fait ressentir durant l’événement !
Keynote par Fabien Potentier, le père de Symfony
L’opening réalisé par Fabien Potencier était bien évidemment très attendu. Une présentation mêlant humilité, humour et respect. Fabien Potencier respecte énormément sa communauté car c’est elle qui est l’essence même du framework Symfony.
Il peut être fier d’être le créateur d’un framework libre avec LA communauté la plus active, bienveillante et compétente, bien entendu. Nous en sortons d’autant plus curieux et déterminés à pousser notre apprentissage pour, pourquoi pas, y apporter notre contribution à l’avenir !
Les conférences
Parmi les conférences, voici une petite sélection et leur résumé :
1 : Comment valider dynamiquement de la donnée ? présenté par Maria Hurteau
Maria nous a transportés dans le monde de Pokémon à travers des métaphores pour vérifier la donnée le plus efficacement et savoir réutiliser au maximum les fonctionnalités disponibles sur Symfony.
Pour vérifier de la donnée entrante ou sortante dans une entité Symfony, nous allons y affecter des contraintes sur les propriétés. La donnée sera alors acceptée ou non par le validateur.
Voici un petit exemple de contraintes que l’on peut retrouver au sein du framework :
- IsNull, NotNull [#Assert\IsNull]
- CssColor #[Assert\CssColor]
- Country #[Assert\Country(alpha3: true)] // FRA, DEU, ITA …
- CardScheme #[Assert\CardScheme(schemes: [Assert\CardScheme::AMEX])]
Et bien d’autres…
Vous pouvez également créer des contraintes personnalisées grâce aux classes Constraint et ConstraintValidator.
Il est possible d’imposer des contraintes sur :
- Une propriété
- Un formulaire
- Une méthode (getter et setter)
- Une classe entière
Nous retiendrons une présentation pertinente et dynamique qui a éveillé notre curiosité. Si c’est aussi votre cas, retrouvez les slides de la présentation.
2 : Les composants Symfony méconnus qui valent le détour, présenté par Alexandre Daubois
À travers cette conférence, nous avons pu découvrir ou redécouvrir 4 composants qui permettent de régler certains défis clé en main (internationalisation, manipulation de chaîne de caractères…).
Les voici :
- HTMLSANITIZER : futur composant Symfony v6.1 permettant de conserver uniquement les balises ou attributs désignés sûrs et souhaités depuis un document HTML.
- STRING : présent depuis la version Symfony v5.1, le composant String fournit une seule API orientée objet pour travailler avec trois « systèmes d’unités » de chaînes : les octets, les points de code et les clusters de graphèmes.
- Options RESOLVER : remplacement amélioré de la fonction PHP array_replace . Il permet de créer un système d’options avec les options requises, les valeurs par défaut, la validation, la normalisation et plus encore (Symfony v2.1).
- INTL / ICU : le composant INTL permet d’accéder aux données de localisation de la bibliothèque ICU (langage, pays, devise …) (Symfony v2.3).
3 : Connaissez-vous vraiment JWT ? présenté par Karim Pinchon
Quel développeur web n’a jamais utilisé ou entendu parlé de JSON Web Token ? Voici un petit rappel : les JWT offrent un moyen standardisé de stocker et de partager en toute sécurité des données au format JSON. Chaque JWT est chiffré, il est donc facile de vérifier qu’il est légitime.
Les JWT contiennent trois parties :
- entête
- charge utile
- Signature
Chaque morceau du JWT est encodé en base 64 séparément, puis les trois éléments sont reliés par un point pour former une seule chaîne.
À travers cette conférence, Karim nous présente des aspects moins connus et les différentes implémentations qui existent pour assurer entre autres l’authentification auprès de web services.
Par exemple avec JOSE (Javascript Object Signing and Encryption) qui est un framework contenant une collection de services nécessaires à la bonne sécurité de transfert de données et d’authentification (JSON Web Token, JSON Web Signature, JSON Web Encryption, JSON Web Algorithms, JSON Web Key).
4 : Code asynchrone dans une application Symfony synchrone par Jérôme Tamarelle
Jérôme nous a présenté ici les différentes pratiques pour mettre en place du code asynchrone dans un contexte PHP synchrone. À travers les différentes solutions (fonctions natives, HttpClient, ReactPhp ou bien AMP), le but est d’extraire les points plus ou moins bénéfiques pour gagner en efficacité et en parallélisation des processus. Nous noterons bien évidemment la prochaine nouveauté Symfony 6.1 qui intégrera les Fibers et nous facilitera ainsi considérablement la tâche.
5 : Symfony et l’open source au service de la société, par Titouan Galopin
Dernière conférence de l’événement, moins technique mais tout aussi intéressante. Titouan nous raconte l’importance de la contribution des développeurs bénévoles lors des périodes de crises à travers ses expériences personnelles. L’idée est de créer une association de développeurs qui pourraient répondre rapidement à un besoin.
Si vous souhaitez participer au projet : galopintitouan@gmail.com.
Histoire de garder le meilleur pour la fin, voici les nouveautés qui seront présentes dès novembre 2022 :
- Symfony 6.1
- TWIG 6.1
- Composant ExpressionLangage amélioré
- Utilisation des bus factor pour favoriser le modèle DDD
- Correction de bogues et re-factorisation
- Analyse et nettoyage des pull requests des contributeurs
Nous sommes très heureux d’avoir pu participer à cet événement et espérons vous avoir fait partager l’ambiance générale du SymfonyLive Paris 2022.
P.S : voici le lien Github de l’event pour plus d’informations (slides, résumés, twitter des intervenants…).
![Lucie Barthes](https://www.kaliop.com/app/uploads/2022/04/Portrait-Confluence-150x150.png)