Symfony

Custom Bundles

Bundle-Erstellung, Extension-Konfiguration, Compiler Passes, wiederverwendbare Bundles, Best Practices

20 Interview-Fragen·
Senior
1

Welche Klasse muss die Hauptklasse eines Bundles in Symfony erweitern?

Antwort

Die Hauptklasse eines Symfony-Bundles muss AbstractBundle (Symfony 6.1+) oder Bundle erweitern. AbstractBundle wird empfohlen, da es die Konfiguration vereinfacht und es erlaubt, die Konfiguration direkt in der Bundle-Klasse über die Methode configure() zu definieren. Bundle bleibt aus Gründen der Abwärtskompatibilität verfügbar, aber AbstractBundle bietet eine modernere API.

2

Welche Rolle spielt die Extension-Klasse in einem Symfony-Bundle?

Antwort

Die Extension-Klasse (die ConfigurableExtension oder Extension erweitert) ist dafür verantwortlich, die Bundle-Konfiguration zu laden und Services im Container zu registrieren. Sie liest die Konfigurationsdateien des Bundles, verarbeitet die Anwendungsparameter und konfiguriert die Services über den ContainerBuilder. Sie implementiert die Methode load(), die während der Container-Kompilierung aufgerufen wird.

3

Wie lautet die Namenskonvention für die Hauptklasse eines Bundles namens AcmePaymentBundle?

Antwort

Nach Symfony-Konvention muss die Hauptklasse des Bundles denselben Namen wie das Bundle haben. Bei AcmePaymentBundle lautet die Hauptklasse AcmePaymentBundle und muss sich im entsprechenden Namespace befinden, üblicherweise Acme\PaymentBundle. Die Datei ist daher AcmePaymentBundle.php im Ordner src/ des Bundles.

4

Was ist ein Compiler Pass in Symfony und wann sollte er verwendet werden?

5

Wie definiert man eine semantische Konfiguration für ein Bundle mit Parametervalidierung?

+17 Interview-Fragen

Meistere Symfony für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten