有没有人知道PHP的YAML解析器?如果是这样,这个图书馆的优点和缺点是什么?
最后更新时间:2017年7月26日
以下是PHP中YAML状态的摘要:
C库的包装:如果你需要纯粹的速度,你可能会想要这些:
php-yaml:LibYAML的包装器.可作为PECL扩展; 它也是PHP文档中的一个.
syck:绑定到syck; 也可作为PECL扩展.(注明日期,见下文)
纯PHP实现:
sfYaml:Symfony的YAML组件.你可以在这里看到作者的动机.他想要的东西是" 易于使用,快速,经过单元测试并且有明确的错误信息".
spyc:没有依赖关系的YAML解析器
在撰写本文时,上述库的最新版本发布日期以及它们支持的YAML规范版本(1.2是最新版本):
php-yaml 1.3.0 2016-09-24 YAML 1.1 [PHP 5] php-yaml 2.0.0 2016-09-24 YAML 1.1 [PHP 7] syck 0.9.3 2008-11-18 YAML 1.0 sfYaml 3.3.5 2017-06-15 YAML 1.1, most of 1.2 spyc 0.6.2 2017-02-24 YAML 1.1
Spyc:https://github.com/mustangostang/spyc
纯PHP实现,因此您无需对服务器进行任何修改即可进行安装.如果速度令人担忧,它可能不是理想的解决方案,但如果您使用YAML进行配置或相对小批量使用,那么这是一个很棒的解决方案.
给定一个YAML文档,Spyc将返回一个你认为合适的数组.
require_once "spyc.php"; $data = Spyc::YAMLLoad($myfile);
给定一个数组,Spyc将返回一个字符串,其中包含根据您的数据构建的YAML文档.
$yaml_str = Spyc::YAMLDump($myarray);
在symfony框架使得非常大量使用YAML,这的博客文章由格雷休伯特使用他们的YAML库在非symfony项目演示.
Symfony2有一个YAML组件,支持大多数 YAML 1.2规范
https://github.com/symfony/Yaml