对于每种类型的文件,是否有兴趣使用XML而不是YAML:
我想在全球范围内询问XML与YAML和JSON,但我会坚持这些主题:)
答案 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。
答案 3 :(得分:2)
支持XML的另一个方面是使用PHP常量定义参数的可能性,这对于YAML是不可能的。