Symfony2 - 为什么要使用XML进行设置/配置?

时间:2012-07-31 14:03:15

标签: xml symfony yaml configuration-files

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

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

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

4 个答案:

答案 0 :(得分:13)

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


修改

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

但很难想象另一种情况。


另一个编辑:

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

答案 1 :(得分:10)

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

编辑:

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

答案 2 :(得分:8)

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

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

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

  •   
  • XML格式比YAML格式快;

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

  •   

虽然这篇文章是为symfony1.x编写的,但这些点也绝对适用于Symfony2。

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

答案 3 :(得分:2)

支持XML的另一个方面是使用PHP常量定义参数的可能性,这对于YAML是不可能的。