![](/img/trans.png)
[英]Inject a Symfony service specified in config.yml into a bundle's service
[英]Optional parameter value in Symfony's main config.yml
我想在我的应用程序的主config.yml
写出类似的东西:
my_section
some_value: %local_value%
param local_value
将从parameters_local.yml
文件中获取。 但是,我希望这个值是可选的 - 如果应用程序用户没有在他的parameters_local.yml
提供local_value
parameters_local.yml
,我希望它被设置为null。
如果我按照上面提供的方式离开config.yml
并尝试省略来自parameters_local.yml
的local_value
,我收到以下错误消息:
[Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException]
You have requested a non-existent parameter "local_value".
有没有解决的办法?
根本不要使用参数。 由开发人员决定他或她想要定义什么作为参数,什么不是。
在您的配置中,将此值定义为可选:
$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%
您的应用程序/库不应该依赖于上述任何解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.