我有一个自定义*Extension
类的包,我需要从另一个包中读取配置(特别是SecurityBundle),例如我。
security:
...
firewalls:
main:
pattern: '^%url_prefix%'
我想知道如何通过插值security.firewalls.main.pattern
参数获得url_prefix
的价值?
答案 0 :(得分:1)
不支持检索配置值(任何捆绑包不同于您的扩展程序所在的捆绑包,因为您在扩展中),并且似乎未来不会出现。
唯一的方法是:
定义一个参数,表示整个选项的值(在类似问题上由this answer指出):
# app/config/security.yml
parameters:
firewalls.main.pattern: '^%url_prefix%'
# ...
security:
# ...
firewalls:
main:
pattern: '^%url_prefix%'
使用Yaml component解析您的config.yml
:
$yamlPath = $this->getParameter('kernel.root_dir').'/config/security.yml';
$config = Symfony\Component\Yaml\Yaml::parse(file_get_contents($yamlPath));
// The option value
$value = $config['security']['firewalls']['main']['pattern'];
我认为,如果没有这样的黑客攻击,就无法从任何容器感知的上下文中检索配置选项,真的很遗憾。