Symfony

Niestandardowe bundle

Tworzenie bundli, konfiguracja extension, compiler passes, bundle wielokrotnego użytku, najlepsze praktyki

20 pytań z rozmów·
Senior
1

Którą klasę musi rozszerzać główna klasa bundle'a w Symfony?

Odpowiedź

Główna klasa bundle'a Symfony musi rozszerzać AbstractBundle (Symfony 6.1+) lub Bundle. AbstractBundle jest zalecana, ponieważ upraszcza konfigurację i pozwala definiować ją bezpośrednio w klasie bundle'a za pomocą metody configure(). Bundle pozostaje dostępna ze względu na kompatybilność wsteczną, ale AbstractBundle oferuje nowocześniejsze API.

2

Jaka jest rola klasy Extension w bundle'u Symfony?

Odpowiedź

Klasa Extension (rozszerzająca ConfigurableExtension lub Extension) odpowiada za ładowanie konfiguracji bundle'a i rejestrowanie usług w kontenerze. Odczytuje pliki konfiguracyjne bundle'a, przetwarza parametry aplikacji i konfiguruje usługi za pomocą ContainerBuilder. Implementuje metodę load(), która jest wywoływana podczas kompilacji kontenera.

3

Jaka jest konwencja nazewnictwa głównej klasy bundle'a o nazwie AcmePaymentBundle?

Odpowiedź

Zgodnie z konwencją Symfony główna klasa bundle'a musi mieć tę samą nazwę co bundle. Dla AcmePaymentBundle główną klasą będzie AcmePaymentBundle i musi znajdować się w odpowiedniej przestrzeni nazw, zwykle Acme\PaymentBundle. Plik to zatem AcmePaymentBundle.php w folderze src/ bundle'a.

4

Czym jest Compiler Pass w Symfony i kiedy go używać?

5

Jak zdefiniować konfigurację semantyczną dla bundle'a z walidacją parametrów?

+17 pytań z rozmów

Opanuj Symfony na następną rozmowę

Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.

Zacznij za darmo