Symfony

Custom Bundles

Bundle-creatie, extension-configuratie, compiler passes, herbruikbare bundles, best practices

20 gespreksvragen·
Senior
1

Welke klasse moet de hoofdklasse van een bundle uitbreiden in Symfony?

Antwoord

De hoofdklasse van een Symfony-bundle moet AbstractBundle (Symfony 6.1+) of Bundle uitbreiden. AbstractBundle wordt aanbevolen omdat het de configuratie vereenvoudigt en het mogelijk maakt de configuratie rechtstreeks in de bundle-klasse te definiëren via de methode configure(). Bundle blijft beschikbaar voor achterwaartse compatibiliteit, maar AbstractBundle biedt een modernere API.

2

Wat is de rol van de Extension-klasse in een Symfony-bundle?

Antwoord

De Extension-klasse (die ConfigurableExtension of Extension uitbreidt) is verantwoordelijk voor het laden van de bundle-configuratie en het registreren van services in de container. Ze leest de configuratiebestanden van de bundle, verwerkt de applicatieparameters en configureert de services via de ContainerBuilder. Ze implementeert de methode load() die tijdens de containercompilatie wordt aangeroepen.

3

Wat is de naamgevingsconventie voor de hoofdklasse van een bundle genaamd AcmePaymentBundle?

Antwoord

Volgens de Symfony-conventie moet de hoofdklasse van de bundle dezelfde naam hebben als de bundle. Voor AcmePaymentBundle is de hoofdklasse AcmePaymentBundle en moet zich in de bijbehorende namespace bevinden, doorgaans Acme\PaymentBundle. Het bestand is daarom AcmePaymentBundle.php in de map src/ van de bundle.

4

Wat is een Compiler Pass in Symfony en wanneer moet je het gebruiken?

5

Hoe definieer je een semantische configuratie voor een bundle met parametervalidatie?

+17 gespreksvragen

Beheers Symfony voor je volgende gesprek

Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.

Begin gratis