Symfony 3.4: как получить доступ к конфигурации пакета в YAML - PullRequest
0 голосов
/ 17 сентября 2018

Я хотел бы спросить, есть ли способ получить доступ к конфигурации пакета из YAML этого пакета.

В частности, реализация Symfony\Component\Config\Definition\ConfigurationInterface Я определяю, что моему пакету требуется некоторая конфигурация.Пользователь помещает эту конфигурацию в свои app/config/bundles/my_bundle.yml со всеми ключами, которые требуются для моего пакета.

my_bundle: magic_key: '42'

Теперь в моем пакете у меня есть Resources/config/services.yml, в котором я настраиваю некоторые службы иМне нужен magic_key для одного из них.

Поскольку я знаю, что magic_key установлен (из-за ConfigurationInterface), я теперь могу получить доступ к этому ключу в классе, расширяющем Symfony\Component\HttpKernel\DependencyInjection\Extension, получить определение конкретногообслуживание и установить аргумент для этого.

Однако я хотел бы сделать это в Resources/config/services.yml, расположенном в моем комплекте, вместо использования класса Extension.Я прочитал в https://symfony.com/doc/3.4/service_container/expression_language.html, что это возможно при использовании функций parameter или container, но я не могу этого сделать.

Причина в том, что я хочунастроить мои сервисы комплектации в одном месте - файле YAML - в отличие от текущей ситуации, когда он разделен между YAML и Extension.php.

Возможно ли это?Какой правильный синтаксис?

1 Ответ

0 голосов
/ 17 января 2019

вам нужно добавить свою конфигурацию в параметры в вашем классе MyBundleExtension, например:

public function load(array $configs, ContainerBuilder $container)
{
    $container->setParameter('my_bundle', $config);
}

Затем вы можете добавить "% my_bundle%" в аргументы службы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...