Le blog

SymfonyLive Paris 2023 : retour sur le second jour

Publié le 30 mars 2023

Lisez la première partie de notre compte rendu à cette adresse : https://les-tilleuls.coop/blog/symfonylive-2023.

Du social à la tech - plaidoyer en faveur des profils atypiques  #

Magali Milbergue nous a offert au SymfonyLive un retour d’expérience sur sa réorientation dans le monde de la tech. Elle donne aussi un contexte à la question du manque de diversité dans ce secteur, apporte des pistes d'améliorations mais surtout explique pourquoi cette diversité est vitale à notre industrie via des exemples concrets.

Après avoir proposé une nouvelle définition de “profil atypique” (une personne ne correspondant pas au profil rencontré habituellement dans le secteur), elle est revenue sur les biais cognitifs qui doivent être déconstruits et pour palier à la discrimination, sur la nécessité de trouver une communauté qui nous ressemble. Après avoir indiqué que le monde PHP est extrêmement fermé à ce niveau, elle évoque le fait que l’accessibilité dans ce secteur est encore dans les “starting-blocks”.

En résumé, la tech se doit de s’ouvrir aux profils atypiques : grâce à cette initiative, plus nos outils et nos applications seront inclusives et plus on ouvrira notre métier. 

Les génériques (en PHP) #

Karim Pinchon nous a présenté les génériques, un concept des langages de programmation qui permettent d'écrire du code typé mais sans être spécifiquement lié à un type particulier.

Présents dans de nombreux autres langages de programmation, les génériques ont le bénéfice de ne pas avoir de surcoût au runtime et proposent une bonne couverture fonctionnelle. Leur cible n’est pas les développeuses et développeurs mais les IDE et les analyseurs de code, du fait que cela est souvent compliqué à lire.

Actuellement, PHP ne permet pas de créer de génériques, et ce n’est a priori pas envisagé en raison de difficultés d’implémentation, comme l’explique Nikita Popov sur Reddit. Pour palier ce problème, nous pouvons à la place utiliser des annotations, qui servent de documentation et permettent à nos IDE de mieux comprendre notre code.

Retrouvez ses slides à cette adresse : https://slides.com/kpn13/les-generiques-en-php.

Concevoir son API pour le futur  #

Titouan Galopin a montré sur la scène du SymfonyLive un challenge rencontré lors de sa mission.

Il se donne pour mission de nous décrire le défi que représente de nos jours la conception d’une API, avec toutes les contraintes de stabilité des formats en entrée/sortie, la gestion du versionning et des dépréciations, l’inclusion des sous-resources, la communication des changements aux consommateurs… Et ce à travers un exemple d’API Symfony.

Il définit une API comme un contrat qui consiste à concevoir une interface permettant de travailler à plusieurs - équipes -. Cela impose qu’elle se doit de rester stable dans le temps, créer des chemins de migration, en guidant les utilisateurs vers son usage. Symfony propose ce niveau d’exigence : 

  • Déconnecter l’interne de l’externe 
  • Communiquer sur le changement  
  • Documenter pour expliquer

Symfony UX sans NPM ni WebPack ! #UseThePlatform #

Une fois n’est pas coutume, notre co-gérant Kévin Dunglas a pris la parole sur JavaScript ! A t-on toujours besoin de ce langage pour développer nos apps ? Tout part d’un constat : beaucoup de devs back n’apprécient et/ou ne maîtrisent pas des bibliothèques ou frameworks JS tels que React ou Vue. Peut-on développer autrement et surtout plus simplement ? Plusieurs personnes et entreprises de la sphère tech en sont venues au même constat notamment DHH, le créateur de Ruby On Rails qui a développé Hotwire et Stimulus pour répondre à ces besoins. 

L’initiative Symfony UX s’appuie sur Hotwire et Stimulus pour fournir la même expérience développeur·se. Hotwire se compose de trois composants principaux : 

  • Turbo (navigation style SPA) 
  • Stimulus (ajout de comportements JavaScript) 
  • Strada (application hybride, pas encore publié) 

Jusqu'ici, installer UX demandait obligatoirement d’utiliser des outils front comme Node, NPM, YARN, Webpack, Encore… Même si Encore simplifie la configuration, l’expérience peut être compliquée en tant que dev back. C’est là qu’intervient le nouveau composant ImportMaps. Inspiré de ce package, il va nous permettre de charger des dépendances JavaScript NPM (ou autres) sans avoir à utiliser Node, Npm, ni Webpack ! Côté front, on a une intégration Twig avec de nouveaux helpers comme importmaps(). ImportMaps permet d’utiliser le code HTTP 103, Early Hints qui ne peut être effectivement utilisé que par FrankenPHP pour l’instant. Pour les autres SAPI, on a un mode dégradé. 

Le développement de ce nouveau package est en cours de finalisation et sera disponible dans Symfony 6.3.

Les tests dans une application Symfony  #

Alexandre Salomé nous a résumé tout le principe de la mise en place et la maintenabilité de tests au sein d’une application Symfony. Il nous a fait un rappel des champs d’action des différents types de tests ainsi que leurs avantages et inconvénients : 

  • Les tests unitaires étendent TestCase. Ils permettent de tester tous les différents cas et d'être exhaustifs. Ils sont rapides à exécuter, simples mais comme inconvénient nous notons les dépendances.
  • Les tests d’intégration étendent KernelTestCase et permettent de tester les services. L'avantage de ces tests c'est qu'on peut tester n’importe quel service dans ses conditions réelles mais les dépendances du service ne sont pas visibles..
  • Les tests applicatifs étendent WebTestCase, ils permettent de tester l’application globale et se situent à l’extérieur de l’application. Ils ne dépendent pas de l’architecture mais ils sont gourmands en ressources.

Le cas d’usage présenté est celui d’un formulaire de login. Il rappelle qu’une application Symfony est grossièrement “une boîte” qui envoie des requêtes et reçoit des réponses HTTP.

Se préparer à la certification Symfony - et au-delà #

Camille Jouan a parlé méthodologie, outils, planning ou encore ressources qui l'ont aidée à préparer puis obtenir la certification Symfony officielle. Ses conseils s'appliquent à tout besoin d'auto-formation.

Sa méthodologie utilisée est la roue de deming

  • Planifier
  • Mettre en oeuvre le plan
  • Comparer ses résultats avec ses objectifs
  • Ajuster son plan

Elle conseille aussi d’être proactif pour acquérir de nouvelles compétences et de trouver un mentor capable de nous aiguiller vers ce qui est intéressant à apprendre. Et pourquoi pas devenir soi-même mentor. Camille souhaite remplacer l’expression “gravir les échelons” par “explorer les compétences”.

Camille a conclu sa conférence sur une analogie avec le jeu Guild Wars 2, où l’on évolue en explorant différentes zones ayant un niveau défini et croissant.

Retour sur 12 mois d'innovations #

Nicolas Grekas effectue une rétrospective des évolutions apportées à Symfony lors de cette dernière année. Elle se présente sous la forme d’une liste exhaustives d’améliorations :

  • Nouveauté au niveau du compilateur
  • Types génériques en annotation
  • PHPUnit 10
  • Nouvelle syntaxe 
  • Intégration continue 
  • 4 nouveaux composants : 
  • RemoteEvent + Webhook
  • Scheduler (messages récurrents Messenger)
  • ImportMaps (gestion des dépendances JavaScript sans Node.js)
  • Retrait du SensioFrameworkExtraBundle en rendant les différentes annotations (@cache, @template, …) natives
  • Amélioration du système de Controller
  • Attributs ajoutés sur les exceptions levées par HttpKernel

Conclusion #

Encore une fois, Symfony nous a offert un beau panel de conférences qualitatives. Nous avons passé un excellent moment en compagnie de la communauté PHP et sommes ravi·e·s de voir toujours autant de monde venir à notre rencontre sur notre stand. Nous donnons désormais rendez-vous en décembre pour la SymfonyCon Bruxelles où nous serons sponsor Platine, et nous nous verrons très certainement les 28 et 29 mars 2024 pour une nouvelle édition de la SymfonyLive Paris !

Les-Tilleuls.coop

Mots-clésSymfony, Symfony Live, UseThePlatform

Le blog

Pour aller plus loin