Symfony 8.0 est sorti le 27 novembre 2025 en parallèle de la version LTS 7.4. Les deux partagent le même code, mais la 8.0 supprime toutes les fonctionnalités dépréciées dans la 7.4. La suppression la plus visible est le format de configuration XML.
Le XmlFileLoader, qui lisait services.xml dans le composant DependencyInjection et routes.xml dans le composant Routing, a été déprécié le 17 octobre 2025 via la pull request #60568 de Mathieu Lechat. Symfony 8.0, qui requiert PHP 8.4, supprime le chargeur des deux composants. Les applications et bundles qui livrent encore de la configuration XML cessent de se charger immédiatement.
YAML n'est pas concerné. L'équipe Symfony a confirmé qu'aucune dépréciation de YAML n'est prévue, et il reste le format par défaut pour les nouveaux projets et les recettes Flex. Symfony 7.4 a aussi ajouté la prise en charge de JSON Schema pour les services, routes, validation et sérialisation, de sorte que les éditeurs comme PhpStorm offrent désormais autocomplétion et validation en YAML via un commentaire de schéma.
Les builders de configuration PHP fluents introduits dans Symfony 5.3 ont également été dépréciés dans la 7.4. Nicolas Grekas a expliqué que les classes fluentes imposent une forme canonique unique par arbre de configuration, ce qui bloque les mises à jour automatiques des recettes. Le remplaçant est un format de tableaux simples encapsulé dans App::config(), avec Routes::config() pour le routage, y compris les blocs d'environnement comme when@dev. Ces tableaux portent des métadonnées de forme lisibles par PHPStan, Psalm et PhpStorm.
Symfony génère ces formes dans config/reference.php, que les équipes commitent et peuvent autocharger via une entrée classmap dans composer.json. Les commentaires du blog ont signalé deux problèmes : des diffs bruyants dans les pull requests à chaque changement de dépendances, et au moins un cas où un motif glob comme **/*.graphql a cassé la syntaxe générée.
Symfony indique lui-même que le format tableau n'est pas encore le format recommandé. La prise en charge des formes de tableaux complexes par les analyseurs statiques est incomplète, et Symfony Flex n'écrit aujourd'hui que des recettes YAML. Le conseil est d'adopter le format fichier par fichier.
Le chemin de migration suggéré : inventorier les fichiers XML de votre code, passer d'abord à la 7.4 et activer la journalisation des dépréciations via symfony/phpunit-bridge, convertir services.xml et routes.xml en YAML, écrire la nouvelle configuration au format tableau sans réécrire les fichiers stables, puis passer à la 8.0 une fois le journal de dépréciations propre.
Les bundles tiers sont le risque le plus important, XML ayant été le format officiellement recommandé pour les auteurs de bundles pendant des années. Un bundle livrant Resources/config/services.xml ne démarre plus sous 8.0. Les options : attendre une version compatible, utiliser l'outil communautaire sur github.com/GromNaN/symfony-config-xml-to-php et soumettre une pull request, forker le bundle, ou rester sur 7.4 LTS avec ses quatre ans de support de sécurité. Un test sur une branche séparée avec composer.json passé à ^8.0 révèle exactement quelles dépendances bloquent la mise à niveau.
Commentaires
Pas encore de commentaire — écris le premier.
Lance la discussion
Pas de compte ni de mot de passe — saisis simplement ton adresse e-mail et nous t’envoyons un lien de connexion à usage unique. Première visite ? Tout se met en place automatiquement.
Ton évaluation sera appliquée automatiquement après ta connexion.
Vérifie ta boîte mail
Nous avons envoyé un lien de connexion à …. Ouvre-le sur cet appareil — cet onglet te connectera automatiquement.
Rien reçu ? Vérifiez le dossier spam — et marquez le message « Non spam » pour qu'il arrive directement la prochaine fois.