我想在我的应用程序主config.yml
中写出类似的东西:
my_section
some_value: %local_value%
将从local_value
文件中获取参数parameters_local.yml
。但是,我希望此值是可选的 - 如果应用程序用户未在其local_value
中提供parameters_local.yml
参数,我希望将其设置为null。
如果我按照上面提供的config.yml
方式离开,并尝试忽略local_value
中的parameters_local.yml
,则会收到以下错误消息:
[Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException]
You have requested a non-existent parameter "local_value".
有解决方法吗?
答案 0 :(得分:3)
根本不使用参数。由开发人员决定他或她想要定义什么作为参数,什么不是。
在您的配置中,将此值定义为可选:
$treeBuilder->root('my_section')
->children()
->scalarNode('some_value')->defaultValue('XYZ')->end()
->end()
;
让用户决定最合适的内容:
# config.yml
my_section: ~
---
# config.yml
my_section:
some_value: ABC
---
# parameters.yml
my_section_some_value: 123
# config.yml
my_section:
some_value: %my_section_some_value%
---
# config.yml:
parameters:
my_section_some_value: 321
my_section:
some_value: %my_section_some_value%
您的应用程序/库不应该依赖上述任何解决方案。