symfony - Symfony 3.4:如何在 YAML 中访问包配置
问题描述
我想问一下是否有办法从该包的 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
orcontainer
函数,但我不能这样做。
其背后的原因是我希望在单个位置(YAML 文件)配置我的捆绑服务,而不是在 YAML 和Extension.php
.
真的有可能吗?什么是正确的语法?
解决方案
您需要在 MyBundleExtension 类的参数中添加配置,如下所示:
public function load(array $configs, ContainerBuilder $container)
{
$container->setParameter('my_bundle', $config);
}
然后您可以在服务参数中添加“%my_bundle%”。
推荐阅读
- pyspark - 如何检查一个数据框中列的值是否仅包含另一个数据框中列中的值
- python-3.x - 如何在此热图上放置遮罩?
- angularjs - 如何从数组中过滤和计算 Typescript 中的项目
- r - Draw residuals for linear, major axis and standardized major axis regressions
- ios - 不同类型的 Json 属性
- python - 检查列表中 dict 之间的差异
- javascript - No such file or directory after confirming the file exists
- python - Arguments passed to nested function with yield keyword
- database - MongoDB: A refers to B. Get A's whose B's satisfy some conditions
- python - 在 for 循环中将一个 numpy 数组添加到另一个 numpy 数组