Symfony

Messenger Component

Message bus, handler, transport, асинхронні повідомлення, middleware, повторні спроби, невдалі повідомлення

22 питань зі співбесід·
Mid-Level
1

Яке основне призначення компонента Messenger у Symfony?

Відповідь

Компонент Messenger дозволяє dispatch повідомлень до handler синхронно або асинхронно через transport, такі як RabbitMQ, Redis чи Doctrine. Він спрощує побудову слабко зв'язаних архітектур, відокремлюючи відправлення повідомлення від його обробки, що покращує масштабованість і зручність підтримки застосунків.

2

Як визначити повідомлення в Symfony Messenger?

Відповідь

Повідомлення в Symfony Messenger — це просто звичайний клас PHP (POPO), що містить дані, необхідні для обробки. Жодного інтерфейсу чи батьківського класу не потрібно. За домовленістю повідомлення називають із описовими суфіксами на кшталт Notification чи Command і роблять їх незмінними за допомогою readonly-властивостей для забезпечення цілісності даних.

3

Як створити handler для обробки повідомлення в Symfony Messenger?

Відповідь

Handler — це клас із методом __invoke(), що отримує повідомлення як параметр. Атрибут #[AsMessageHandler] автоматично реєструє handler. Symfony визначає тип повідомлення для обробки за type-hint параметра. Цей підхід використовує autowiring і уникає будь-якого ручного налаштування в services.yaml.

4

Який інтерфейс потрібно інжектувати, щоб виконати dispatch повідомлення в Symfony Messenger?

5

Що таке Envelope у контексті Symfony Messenger?

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

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

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

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