# Custom Bundles (Symfony) > Bundle creation, extension configuration, compiler passes, reusable bundles, best practices - 20 questions d'entretien - Senior - [Questions d'entretien: Symfony](https://sharpskill.dev/fr/technologies/symfony/questions-entretien.md) ## 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. ## 17 questions supplémentaires disponibles - Qu'est-ce qu'un Compiler Pass dans Symfony et quand l'utiliser ? - Comment définir une configuration sémantique pour un bundle avec validation des paramètres ? S'inscrire gratuitement: https://sharpskill.dev/fr/login ## Autres sujets d'entretien Symfony - [PHP Moderne (8.1+)](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/php-modern-features.md): 20 questions, Junior - [Les bases de Symfony](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/symfony-basics.md): 25 questions, Junior - [Routing & Controllers](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/routing-controllers.md): 20 questions, Junior - [Twig & Templates](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/twig-templates.md): 20 questions, Junior - [Doctrine ORM - Les bases](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/doctrine-orm-basics.md): 25 questions, Junior - [Formulaires Symfony](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/forms.md): 22 questions, Junior - [Validation de données](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/validation.md): 18 questions, Junior - [Dependency Injection & Services](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/dependency-injection.md): 24 questions, Confirmé - [Security & Authentication](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/security-authentication.md): 26 questions, Confirmé - [Doctrine avancé](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/doctrine-advanced.md): 24 questions, Confirmé - [API Platform](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/api-platform.md): 22 questions, Confirmé - [Serializer Component](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/serializer.md): 20 questions, Confirmé - [Events & Event Subscribers](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/events-subscribers.md): 20 questions, Confirmé - [Console & Commands](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/console-commands.md): 18 questions, Confirmé - [Messenger Component](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/messenger.md): 22 questions, Confirmé - [HTTP Client](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/http-client.md): 18 questions, Confirmé - [Cache & Performance](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/cache.md): 20 questions, Confirmé - [Workflow Component](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/workflow.md): 18 questions, Confirmé - [Testing Symfony](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/testing.md): 22 questions, Confirmé - [Mailer Component](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/mailer.md): 16 questions, Confirmé - [Translations & i18n](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/translations.md): 16 questions, Confirmé - [EasyAdmin Bundle](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/easyadmin.md): 18 questions, Confirmé - [Architecture Symfony](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/architecture-patterns.md): 24 questions, Senior - [Performance & Optimisation](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/performance-optimization.md): 22 questions, Senior - [Sécurité avancée](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/security-advanced.md): 22 questions, Senior - [Microservices avec Symfony](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/microservices.md): 22 questions, Senior - [Real-time & WebSockets](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/real-time.md): 18 questions, Senior - [Deployment & DevOps](https://sharpskill.dev/fr/technologies/symfony/questions-entretien/deployment-devops.md): 20 questions, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/fr/technologies/symfony/questions-entretien/custom-bundles