我想在我的应用程序的主 config.yml
中编写类似的内容:
my_section
some_value: %local_value%
参数 local_value
将从 parameters_local.yml
文件中获取。但是,我希望这个值是可选的 - 如果应用程序用户没有在他的 parameters_local.yml
中提供 local_value
参数,我希望它被设置为空。
如果我按照上面提供的方式保留 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%
您的应用程序/库不应依赖于上述任何解决方案。
关于php - Symfony 的主要 config.yml 中的可选参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29899079/