Mathieu Desnouveaux

Config format and Symfony: let's talk about DX

Présentation par Nicolas Grekas sur l'amélioration de la Developer Experience des formats de configuration Symfony à l'API Platform Conference 2025

Sketchnote sur les formats de configuration Symfony avec citation de Ryan Weaver 'Be aggressive, focus on beginner'. Le problème identifié: 3 choix de config (même XML) avec icônes. L'objectif: réduire les choix. Trois cibles présentées: Remove XML dependency (self analysis component and feature, process all, find the latest mandatory XML config file), Improve YAML (add JSON schema for validation and completion for Symfony YAML and bundles), Improve PHP (array shape generation). Le but final: auto completion, static analysis, symbol referencing, automated patching, compile time only avec illustration d'un robot.

Cette sketchnote a été réalisée lors de l'API Platform Conference 2025. Elle illustre la présentation "Config format and Symfony: let's talk about DX" donnée par Nicolas Grekas, core contributor Symfony, qui propose des améliorations significatives de l'expérience développeur pour la configuration Symfony.

Contenu de la présentation

La présentation s'ouvre sur une citation de Ryan Weaver : "Be aggressive, focus on beginner", établissant le principe directeur d'une DX optimale pour les débutants. Le problème identifié : Symfony offre 3 choix de formats de configuration (YAML, PHP, XML), créant de la confusion, notamment avec le format XML encore présent. L'objectif : réduire les choix pour simplifier l'expérience.

Nicolas Grekas détaille trois cibles d'amélioration :

Remove XML dependency : éliminer progressivement la dépendance au XML via une analyse automatique. Le processus inclut :

  • Self analysis des composants et features
  • Process all : traiter tous les fichiers de configuration
  • Find the latest mandatory XML config file : identifier et migrer les derniers fichiers XML obligatoires

Improve YAML : améliorer le format YAML en ajoutant un JSON Schema pour la validation et la complétion automatique, applicable à la fois aux fichiers YAML Symfony et aux bundles. Cette validation permet de détecter les erreurs avant l'exécution.

Improve PHP : optimiser la configuration PHP avec la génération d'array shapes, permettant aux IDEs de fournir une meilleure analyse statique et auto-complétion.

Le but final est d'offrir :

  • Auto completion : suggestions intelligentes dans l'IDE
  • Static analysis : détection d'erreurs avant exécution
  • Symbol referencing : navigation dans la configuration
  • Automated patching : corrections automatiques
  • Compile time only : validation à la compilation, illustré par un robot symbolisant l'automatisation
Thèmes:
🐘 PHP 🛠️ Tools
Événement:
🎤 API Platform Conference

Source: Nicolas Grekas
Publié le 29 novembre 2025