Glossaire Symfony
40 termes techniques expliqués
Authenticator
Classe gérant un mécanisme d'authentification complet. Remplace les Guard Authenticators depuis Symfony 5.3. Implémente AuthenticatorInterface.
Autoconfiguration
Fonctionnalité du conteneur qui détecte automatiquement les interfaces ou attributs implémentés par un service et applique les tags correspondants (ex: EventSubscriberInterface → tag kernel.event_subscriber).
Autowiring
Mécanisme du conteneur de services Symfony qui injecte automatiquement les dépendances d'un service en analysant les types des paramètres de son constructeur. Élimine la configuration manuelle des services dans la plupart des cas.
Bundle
Plugin réutilisable pour Symfony. Depuis Symfony 4, les bundles sont réservés aux bibliothèques partagées. Les applications utilisent directement src/ sans bundle applicatif.
Cache Pool
Instance de cache nommée avec un adaptateur et un namespace spécifiques. Symfony permet de définir plusieurs pools avec des durées de vie et backends différents.
Cache Tag
Métadonnée attachée à un item de cache permettant d'invalider plusieurs items par tag plutôt qu'individuellement. Implémenté par TagAwareCacheInterface.
Compiler Pass
Classe qui modifie le conteneur de services pendant la phase de compilation. Permet d'inspecter et de modifier les définitions de services avant que le conteneur soit figé.
Constraint
Règle de validation du composant Validator. S'applique via l'attribut #[Assert\*] sur les propriétés d'entité ou les paramètres de méthode.
Constraint Validator
Classe associée à une contrainte qui exécute la logique de validation. Hérite de ConstraintValidator et implémente validate(). Ajoutée automatiquement via autowiring.
CSRF Token
Token aléatoire inclus dans les formulaires pour prévenir les attaques Cross-Site Request Forgery. Symfony le gère automatiquement dans les formulaires et via CsrfTokenManager.
Data Collector
Classe qui collecte des données pour un panneau spécifique du Profiler. Implémente DataCollectorInterface et peut être créée pour ajouter un panneau personnalisé.
DQL
Doctrine Query Language. Langage de requête orienté objet propre à Doctrine qui opère sur des entités et leurs propriétés plutôt que sur des tables SQL.
Encoder
Composant du Serializer qui convertit un tableau en chaîne de caractères dans un format donné (JSON, XML, CSV, YAML) et vice-versa.
Entity
Classe PHP mappée à une table de base de données par Doctrine ORM via des attributs #[ORM\Entity], #[ORM\Column], etc. Représente un enregistrement de la base.
Envelope
Conteneur Messenger qui emballe un message avec ses stamps. Permet d'enrichir le message avec des métadonnées sans modifier la classe du message elle-même.
Event Dispatcher
Implémentation du pattern Observer. Permet d'émettre des événements nommés et de leur attacher des listeners ou subscribers qui réagiront de manière découplée.
Firewall
Couche de sécurité Symfony qui définit comment les requêtes vers une section de l'application doivent être authentifiées. Plusieurs firewalls peuvent coexister (ex: api, main).
HttpClient
Composant Symfony pour effectuer des requêtes HTTP sortantes. Supporte les requêtes asynchrones, le streaming, les retries automatiques et est testable via MockHttpClient.
Importmap
Mécanisme browser natif (et son émulation) permettant de résoudre les imports ES modules sans bundler. Géré par AssetMapper via importmap.php.
Kernel
Cœur de l'application Symfony. Orchestre le cycle de vie d'une requête HTTP : chargement des bundles, compilation du conteneur, dispatch des événements (request → controller → response).
Lazy Service
Service instancié uniquement lors de son premier appel effectif, via un proxy généré. Utile pour les services coûteux non toujours utilisés.
Marking Store
Dans le composant Workflow, mécanisme qui persiste l'état courant (place) d'un objet. Par défaut utilise une propriété de l'objet, peut être personnalisé.
Message Bus
Interface centrale de Messenger par laquelle transitent tous les messages. Symfony peut configurer plusieurs bus (command bus, query bus, event bus) selon le pattern CQRS.
Middleware
Dans le contexte Messenger, couche de traitement encapsulant l'envoi ou la réception d'un message. Permet d'ajouter de la logique transversale (logging, transactions, validation).
Migration
Fichier PHP versionnant une modification du schéma de base de données. Généré via doctrine:migrations:diff, exécuté via doctrine:migrations:migrate. Permet un suivi des évolutions du schéma.
Normalizer
Composant du Serializer qui convertit un objet PHP en tableau de données primitives (normalisation) ou l'inverse (dénormalisation). La chaîne de normalizers est parcourue jusqu'au premier qui supporte l'objet.
Place
Dans le composant Workflow, état dans lequel peut se trouver un objet. Un objet peut être dans plusieurs places simultanément dans un Workflow (pas dans une StateMachine).
Profiler
Outil de débogage Symfony collectant des données sur chaque requête (temps, requêtes SQL, events, logs...). Accessible via la Web Debug Toolbar en développement.
QueryBuilder
API fluente de Doctrine pour construire des requêtes DQL de façon programmatique, avec autocomplétion IDE et protection contre les injections SQL.
Repository
Classe Doctrine responsable de la récupération des entités depuis la base de données. Hérite de ServiceEntityRepository et peut contenir des méthodes de requête personnalisées.
Security Passport
Objet retourné par un Authenticator::authenticate() contenant les credentials et badges (PasswordCredentials, CsrfTokenBadge, RememberMeBadge...) à vérifier.
Service Locator
Conteneur léger qui ne résout les services que lors de leur accès effectif (lazy). Utilisé pour injecter un sous-ensemble de services sans les instancier tous.
Service Tag
Métadonnée attachée à un service pour l'identifier comme participant à un mécanisme particulier (ex: twig.extension, kernel.event_listener). Utilisé par les compiler passes pour collecter des services.
Stamp
Métadonnée attachée à une enveloppe de message Messenger pour transporter des informations supplémentaires (transport utilisé, délai, tentatives, ID de message...).
SymfonyStyle
Classe d'aide pour les commandes Console offrant une API haut niveau pour afficher des titres, sections, tables, listes, questions et barres de progression.
Transition
Dans le composant Workflow, action qui fait passer un objet d'une ou plusieurs places à d'autres. Peut être soumise à des guards (conditions).
Transport
Dans Messenger, couche d'abstraction pour l'envoi et la réception de messages via une technologie donnée (AMQP, Redis, Doctrine, SQS, in-memory...).
Voter
Classe qui centralise la logique d'autorisation pour une ressource ou un attribut donné. Implémente VoterInterface et retourne ACCESS_GRANTED, ACCESS_DENIED ou ACCESS_ABSTAIN.