Php Symfony'中的可选参数值;s main config.yml

Php Symfony'中的可选参数值;s main config.yml,php,symfony,Php,Symfony,我想在我的应用程序的mainconfig.yml中写一些类似的东西: my_section some_value: %local_value% 其中,参数local_值将取自parameters_local.yml文件。但是,我希望此值是可选的-如果应用程序用户在其parameters\u local.yml中未提供local\u值参数,我希望将其设置为null 如果我按照上面提供的方式保留config.yml,并尝试从parameters\u local.yml中忽略local\u值,我

我想在我的应用程序的main
config.yml
中写一些类似的东西:

my_section
  some_value: %local_value%
其中,参数
local_值
将取自
parameters_local.yml
文件。但是,我希望此值是可选的-如果应用程序用户在其
parameters\u local.yml
中未提供
local\u值
参数,我希望将其设置为null

如果我按照上面提供的方式保留
config.yml
,并尝试从
parameters\u local.yml
中忽略
local\u值,我会收到以下错误消息:

[Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException]
您请求了一个不存在的参数“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%
    
  • 应用程序/库不应依赖于上述任何解决方案


  • 使用空值将
    local\u值添加到
    parameters.yml(.dist)
    ?正如我所说的-我希望它在不修改
    参数的情况下工作。yml
    是否
    我的\u部分
    键引用捆绑包配置?如果有,您可以在bundle配置树中设置默认参数值。没错,但是我希望有一个选项可以从参数文件中覆盖默认bundle配置。如果提供-使用参数中的一个。如果不是-使用默认的捆绑配置。为什么不想修改该文件?