Symfony 7.4 & 8.0 : la version LTS qui redéfinit l'expérience développeur
Symfony 7.4 consolide le passage à l'architecture pilotée par attributs, livre JsonStreamer pour un traitement de gros payloads 10x plus rapide, et introduit ObjectMapper pour des frontières DTO propres.
1. L'architecture pilotée par attributs est désormais la norme
Symfony 7.4 consolide le passage de la configuration YAML/XML aux attributs PHP natifs. Le framework traite désormais les attributs PHP comme des citoyens de configuration de première classe, permettant aux IDEs de fournir une complétion type-safe que le YAML ne peut pas offrir. La configuration XML est formellement dépréciée dans la 7.4 et sera supprimée dans Symfony 8.0.
2. Commandes console repensées avec #[MapInput] et #[Ask]
Symfony 7.4 réduit significativement le code répétitif des commandes CLI. Le nouvel attribut #[MapInput] mappe les arguments et options de commande directement dans un DTO typé. L'attribut #[Ask] déclare les prompts interactifs de manière déclarative :
#[AsCommand(name: 'app:serveur:provisionner')] class ProvisionnerServeurCommand extends Command { public function __invoke( SymfonyStyle \$io, #[MapInput] EntreeProvisionServeur \$entree ): int { \$io->success(sprintf( 'Provisionnement de %d serveur(s) en %s...', \$entree->nombre, \$entree->region->value )); return Command::SUCCESS; } }
3. JsonStreamer et JsonCrawler : traitement efficace des gros payloads
Symfony 7.3 (mai 2025) a introduit JsonStreamer un encodeur/décodeur en streaming environ 10x plus rapide et 50–90% plus léger en mémoire que le Serializer standard pour les gros payloads. Pour les APIs qui échangent des documents JSON de plusieurs mégaoctets, c'est un changement opérationnel significatif.
JsonCrawler fournit une interface fluide pour interroger les structures JSON en utilisant des expressions JSONPath conformes à la RFC 9535.
4. ObjectMapper : éliminer le code de mapping DTO
Le nouveau composant ObjectMapper gère les transformations DTO-vers-entité et entité-vers-DTO de manière déclarative en utilisant les attributs #[Map]. Il supporte les graphes d'objets imbriqués, le mapping conditionnel, les transformateurs basés sur des services et la détection de cycles.
5. Planifier votre migration : 7.4 LTS vs. 8.0
Symfony 7.4 LTS offre une stabilité jusqu'en novembre 2029. Symfony 8.0 nécessite PHP 8.4, embarque des fonctionnalités identiques mais avec une fenêtre de support plus courte encourageant l'adoption du cycle de versions mineures 8.x. Chez Soft Optimum Services, nous appliquons Symfony 7.4 sur les nouveaux projets et maintenons des plans de migration actifs pour les déploiements 6.4 LTS existants.