我想问一下是否有一种方法可以从该捆绑软件的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
中执行此操作,而不要使用and Extension
类。
我在https://symfony.com/doc/3.4/service_container/expression_language.html处读到,应该可以使用parameter
或container
函数,但是我无法做到这一点。
其背后的原因是,我希望在单个位置(YAML文件)配置捆绑服务,而不是在YAML和Extension.php
之间拆分它的当前情况。
确实有可能吗?正确的语法是什么?
答案 0 :(得分:0)
您需要像这样在MyBundleExtension类的参数中添加配置:
public function load(array $configs, ContainerBuilder $container)
{
$container->setParameter('my_bundle', $config);
}
然后,您可以在服务参数中添加“%my_bundle%”。