【问题标题】:Deprecated | (pipe) symbol with unquoted content in Yaml translation files in Symfony 2.8.18已弃用 | Symfony 2.8.18 中 Yaml 翻译文件中带有未引用内容的(管道)符号
【发布时间】:2017-03-21 02:21:47
【问题描述】:

我正在升级到 Symfony 2.8.18,我注意到upgrade notes 中的以下评论

不推荐使用 @、`、| 和 > 在未加引号的开头 字符串

不清楚的是这是否包括 Yaml 翻译/内容,如下所示:

  info: |
    You can upgrade to Ayrshire Minis Premium at any time. Just visit http://www.ayrshireminis.com for more information.

是否应该修改为以下内容?

  info: |
    "You can upgrade to Ayrshire Minis Premium at any time. Just visit http://www.ayrshireminis.com for more information."

Symfony 官方网站上的 New in Symfony 2.8: YAML deprecations 博客文章没有给出示例或对此进行推断

【问题讨论】:

  • 引号在块样式文字标量中没有特殊含义。您的第一个和第二个 YAML 示例不同。

标签: php symfony yaml symfony-2.8


【解决方案1】:

他们至少可以得到正确的术语。 YAML 中没有像 不带引号的字符串 这样的东西。根据他们所说的,我推断他们的意思是普通流标量

根据 YAML 规范,@` 在此类标量的开头是非法的,因为它们是为将来使用而保留的。 |> 显然是非法的,因为它们启动块标量。他们在博客文章中给出了这个以前工作的例子:

arguments: [`string`, |string, >string]

这意味着您不能在流内容中使用|> 来启动纯标量。这在理论上是允许的,因为它没有歧义,因为流内容中不能存在块标量,但 YAML 规范仍然禁止它。

从他们的解释来看,这对块标量没有影响(其他一切都意味着他们不再支持一个主要的 YAML 功能,这太奇怪了)。

【讨论】:

  • 看来他们要更新 PHP YAML 解析器了。
  • 好的,谢谢您的回复。所以综上所述,我上面的例子不需要改变吗?
  • @crmpicco 根据我的理解:不。但我没有参与,因此不能保证任何事情。
猜你喜欢
  • 2021-08-14
  • 2014-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-10
  • 2011-11-28
  • 2020-06-23
  • 2021-02-08
相关资源
最近更新 更多