Symfony

Custom Bundles

Bundle creation, extension configuration, compiler passes, reusable bundles, best practices

20 questions d'entretien·
Senior
1

Quelle classe doit étendre la classe principale d'un bundle Symfony ?

Réponse

La classe principale d'un bundle Symfony doit étendre AbstractBundle (Symfony 6.1+) ou Bundle. AbstractBundle est recommandée car elle simplifie la configuration et permet de définir la configuration directement dans la classe du bundle via la méthode configure(). Bundle reste disponible pour la rétrocompatibilité mais AbstractBundle offre une API plus moderne.

2

Quel est le rôle de la classe Extension dans un bundle Symfony ?

Réponse

La classe Extension (héritant de ConfigurableExtension ou Extension) est responsable de charger la configuration du bundle et d'enregistrer les services dans le container. Elle lit les fichiers de configuration du bundle, traite les paramètres de l'application et configure les services via le ContainerBuilder. Elle implémente la méthode load() qui est appelée lors de la compilation du container.

3

Quelle est la convention de nommage pour la classe principale d'un bundle nommé AcmePaymentBundle ?

Réponse

Par convention Symfony, la classe principale du bundle doit porter le même nom que le bundle. Pour AcmePaymentBundle, la classe principale sera AcmePaymentBundle et devra se trouver dans le namespace correspondant, généralement Acme\PaymentBundle. Le fichier sera donc AcmePaymentBundle.php dans le dossier src/ du bundle.

4

Qu'est-ce qu'un Compiler Pass dans Symfony et quand l'utiliser ?

5

Comment définir une configuration sémantique pour un bundle avec validation des paramètres ?

+17 questions d'entretien

Maîtrise Symfony pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement