【问题标题】:Symfony2: Multi-level parameters in YMLSymfony2:YML 中的多级参数
【发布时间】:2013-08-31 07:46:09
【问题描述】:

这就是我想要做的。我有一些 yml 文件,例如...

我的自定义 yml 文件:

# app/config/sv_parameters.yml
parameters:
  sv_email:
    debug: "debug@debug.com"
    admin: "admin@admin.com"
    ...

config.yml 文件,导入我的自定义参数:

# app/config/config.yml
imports:
  - { resource: sv_parameters.yml }
...

config_dev.yml,导入 config.yml,并使用我的自定义 yml 文件的子参数:

# app/config/config_dev.yml
imports:
- { resource: config.yml }

swiftmailer:
  delivery_address: "%sv_email.debug%"

但是,当我clear:cache

You have requested a non-existent parameter "sv_email.debug".

我知道 PHP 中的多级参数是数组。但这是否意味着我们可以在纯 YML 中访问它们?

我可以将我的sv_email 参数内联写入,但这不像多级那样干净..

【问题讨论】:

    标签: arrays symfony parameters yaml multi-level


    【解决方案1】:

    这在 YML 中是不可能实现的。
    您必须将此嵌套变量移动到上层,然后 - 将它包含在两个需要的地方。

    【讨论】:

    • 我就是这么想的。他们打算在 YML 中实现它吗?因为有时它会更干净,而不是重复 sv_email.debug sv_email.admin sv_email.client ...
    • @Bonswoar 我完全不知道 :)
    • 没有机会。 .在 yaml 参数名称中允许使用,因此 sv_email.client : value 工作得很好。如果没有大量的 bc 中断,就无法将数组转换为点符号。
    • 另一方面,Symfony:DependencyInjection::load 方法允许您向容器添加参数。因此,您可以根据需要将 sv_email 转换为单独的参数。但我怀疑你可能会发现这比它的价值更麻烦。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    • 2013-12-18
    • 1970-01-01
    • 2017-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多