是否有兴趣为每种类型的文件使用 XML 而不是 YAML:
- 配置
- 安全
- 路由
- 服务
- 翻译
我想在全球范围内询问 XML 与 YAML 和 JSON,但我会坚持这些主题 :)
是否有兴趣为每种类型的文件使用 XML 而不是 YAML:
我想在全球范围内询问 XML 与 YAML 和 JSON,但我会坚持这些主题 :)
xml 配置的优点是 IDE 自动完成和即时验证。作为由具体模式定义定义的元素,IDE 可以立即针对它验证元素,这在 YAML 或 JSON 中是不可能的。另外我认为 Symfony 在处理之前会根据定义验证配置中的 xml 元素。
编辑:
通过验证,我的意思是根据定义的模式验证元素结构。最好在处理之前验证配置。例如,services.yml
具有数百个服务对象的定义在第 99 个服务定义中有错误。Yaml 解析器将增量解析,创建昂贵的 cpu 密集型服务对象,并将在第 99 个定义处失败。而对于已service.xml
定义的模式,您可以验证元素结构并在正常时处理它们。显然第二个过程是有效的。
Fabien Potencier 在他的博客上写到了使用 XML 优于 YAML 的优势:
加载 XML 文件时,会自动使用内置 services.xsd 文件对其进行验证;
XML 可以在 IDE 中自动完成;
XML 格式比 YAML 格式快;
XML 格式没有外部依赖(YAML 格式依赖于 sfYAML 组件)。
虽然这篇文章是为 symfony1.x 写的,但这些积分也绝对可以应用于 Symfony2。
支持 XML 的另一件事是可以使用 PHP 常量定义参数,而 YAML 则无法做到这一点。