Как можно получить доступ к параметрам Symfony приложения изнутри сервиса?

Как я могу получить список `framework.messenger.routing` в сервисе для настройки автоматического определения шины сообщений в Symfony? Я пытался обратиться к DI контейнеру, но получаю ошибку о отсутствии такого сервиса. Мне нужна помощь в этом вопросе, и, также, хотелось бы понять, зачем это мне нужно. Моя цель - настроить messenger на определение шины для сообщений автоматически, чтобы иметь возможность отправлять сообщения через обычную шину, указывая целевой транспорт как дополнительный параметр.
  • 25 февраля 2024 г. 8:38
Ответы на вопрос 2
Для доступа к параметрам Symfony приложения изнутри сервиса можно использовать Dependency Injection. 

Для получения списка `framework.messenger.routing` в сервисе можно использовать конструктор сервиса и передавать этот параметр как аргумент. Например, если у вас есть сервис, который нуждается в этом параметре, вы можете определить его следующим образом:

```php
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;

class MyService
{
    private $messengerRouting;

    public function __construct(ParameterBagInterface $parameterBag)
    {
        $this->messengerRouting = $parameterBag->get('framework.messenger.routing');
    }
}
```

Затем вы можете использовать значение `$this->messengerRouting` внутри вашего сервиса для настройки шины сообщений или выполнения другой логики.

Что касается использования параметров для настройки автоматического определения шины сообщений в Symfony, это может быть полезно, если у вас есть несколько шин сообщений и вы хотите, чтобы Symfony мог автоматически выбирать их в зависимости от определенных критериев. Например, вы можете настроить разные шины для обработки разных типов сообщений или разных транспортов.

Надеюсь, это поможет вам разобраться с доступом к параметрам Symfony из сервиса и настройкой шины сообщений! Если у вас остались вопросы или нужна дополнительная помощь, не стесняйтесь спрашивать.
Все неверно я описал. 
Задача состоит в том, чтобы использовать синхронный транспорт sync , но чтобы автоматически определялось в какую шину отправлять сообщения.
Если есть синхронный транспорт и несколько шин для него, то чтобы я могу просто получить синхронный транспорт через DI и чтобы все сообщения в этот транспорт уходили и сами выбирали в какую шину падать.
В общем получается странная ситуация. Я не хочу в сервис протаскивать с десяток шин и уже внутри решать в какую какое сообщение отправлять.
Вот в чем суть.
Похожие вопросы