14

是否有兴趣为每种类型的文件使用 XML 而不是 YAML:

  • 配置
  • 安全
  • 路由
  • 服务
  • 翻译

我想在全球范围内询问 XML 与 YAML 和 JSON,但我会坚持这些主题 :)

4

4 回答 4

13

在我公司的项目中,我们使用上述每个点,YAML因为它更具可读性。最易读。最易读。


编辑

我可以想象使用XMLover的唯一抽象情况 - 可能是一些动态文件编写器,因为使用节点或类似的东西YAML更容易操作。SimpleXML例如,如果您需要定义一些配置文件,在测试中构建模式等......

但很难想象另一种情况。


另一个编辑:

由于我的回答被接受了,我不能不同意m2mdas - 正如他在下面的回答中提到的那样,使用的另一件事XML是 IDE 的自动完成支持。

于 2012-07-31T14:07:40.893 回答
10

xml 配置的优点是 IDE 自动完成和即时验证。作为由具体模式定义定义的元素,IDE 可以立即针对它验证元素,这在 YAML 或 JSON 中是不可能的。另外我认为 Symfony 在处理之前会根据定义验证配置中的 xml 元素。

编辑:

通过验证,我的意思是根据定义的模式验证元素结构。最好在处理之前验证配置。例如,services.yml具有数百个服务对象的定义在第 99 个服务定义中有错误。Yaml 解析器将增量解析,创建昂贵的 cpu 密集型服务对象,并将在第 99 个定义处失败。而对于已service.xml定义的模式,您可以验证元素结构并在正常时处理它们。显然第二个过程是有效的。

于 2012-07-31T19:06:17.570 回答
8

Fabien Potencier 在他的博客上写到了使用 XML 优于 YAML 的优势:

  • 加载 XML 文件时,会自动使用内置 services.xsd 文件对其进行验证;

  • XML 可以在 IDE 中自动完成;

  • XML 格式比 YAML 格式快;

  • XML 格式没有外部依赖(YAML 格式依赖于 sfYAML 组件)。

虽然这篇文章是为 symfony1.x 写的,但这些积分也绝对可以应用于 Symfony2。

http://fabien.potencier.org/article/15/symfony-service-container-using-xml-or-yaml-to-describe-services

于 2014-06-06T13:04:01.953 回答
2

支持 XML 的另一件事是可以使用 PHP 常量定义参数,而 YAML 则无法做到这一点。

于 2014-04-14T20:25:20.307 回答