【问题标题】:Symfony2 YAML parsing failsSymfony2 YAML 解析失败
【发布时间】:2011-12-12 11:11:05
【问题描述】:

我在 YAML 中有这个内容:

Foo:
    bar:    |
            Foo bar.

它工作正常,但是这个:

Foo:
    bar:    |
            40 % Foo bar.

失败:

ParameterNotFoundException:参数 "foobar" 有依赖关系 在一个不存在的参数“Foo bar”上。

根据错误,它显然出现在百分号 % 出现的位置。有什么方法可以对其进行编码或使其不会失败?

【问题讨论】:

    标签: php symfony yaml


    【解决方案1】:

    问题在于 Symfony 依赖注入容器使用 %something% 语法来引用 DIC 参数。我认为你应该以某种方式逃避 %;作为第一次尝试,我会选择其中一个:

    40 %% Foo bar .
    40 "%" Foo bar .
    "40 % Foo bar ."
    

    我在 Symfony 中没有找到 100% 确定的答案,所以去尝试一下;)

    【讨论】:

    • 最后一种是正确的做法。另请注意,如果您曾经使用非 symfony 解析器解析 yaml,则未转义的 % 可能会导致错误。
    【解决方案2】:

    简而言之,当您希望在 yaml 值中使用 % 时,请使用 %%

    【讨论】:

      【解决方案3】:

      根据http://symfony.com/doc/current/reference/configuration/framework.html

      格式字符串中的所有百分号 (%) 必须加倍才能转义字符。如果不进行转义,值可能会无意中被解释为服务参数。

      【讨论】:

        猜你喜欢
        • 2021-06-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-07
        • 1970-01-01
        • 2010-09-22
        • 2019-07-22
        • 2014-04-05
        相关资源
        最近更新 更多