Symfony

Користувацькі бандли

Створення бандлів, конфігурація extension, compiler passes, повторно використовувані бандли, найкращі практики

20 питань зі співбесід·
Senior
1

Який клас має розширювати головний клас бандла в Symfony?

Відповідь

Головний клас бандла Symfony має розширювати AbstractBundle (Symfony 6.1+) або Bundle. AbstractBundle рекомендується, оскільки спрощує конфігурацію та дозволяє визначати конфігурацію безпосередньо в класі бандла через метод configure(). Bundle залишається доступним для зворотної сумісності, але AbstractBundle пропонує сучасніший API.

2

Яка роль класу Extension у бандлі Symfony?

Відповідь

Клас Extension (що розширює ConfigurableExtension або Extension) відповідає за завантаження конфігурації бандла та реєстрацію сервісів у контейнері. Він читає файли конфігурації бандла, обробляє параметри застосунку та налаштовує сервіси через ContainerBuilder. Він реалізує метод load(), який викликається під час компіляції контейнера.

3

Яка конвенція іменування для головного класу бандла з назвою AcmePaymentBundle?

Відповідь

За конвенцією Symfony головний клас бандла повинен мати таку саму назву, як і бандл. Для AcmePaymentBundle головним класом буде AcmePaymentBundle, і він має знаходитися у відповідному просторі імен, зазвичай Acme\PaymentBundle. Тому файл буде AcmePaymentBundle.php у папці src/ бандла.

4

Що таке Compiler Pass у Symfony і коли його використовувати?

5

Як визначити семантичну конфігурацію для бандла з перевіркою параметрів?

+17 питань зі співбесід

Опануй Symfony для наступної співбесіди

Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.

Почни безкоштовно