Does anyone know of a good YAML Parser for PHP? If so, what are the pros and cons of this library?
7 回答
最后更新时间:2017 年 7 月 26 日
以下是 PHP 中 YAML 状态的总结:
- C 库的包装器:如果您需要绝对速度,您可能会想要这些:
纯 PHP 实现:
在撰写本文时,上述库的最新版本发布日期和它们支持的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
间谍:https ://github.com/mustangostang/spyc
纯PHP实现,无需对服务器进行任何修改即可安装。如果速度是一个可怕的问题,它可能不是理想的解决方案,但如果你使用 YAML 进行配置或相对低容量的使用,它是一个很棒的解决方案。
给定一个 YAML 文档,Spyc 将返回一个数组,您可以随意使用它。
require_once "spyc.php";
$data = Spyc::YAMLLoad($myfile);
给定一个数组,Spyc 将返回一个字符串,其中包含从您的数据构建的 YAML 文档。
$yaml_str = Spyc::YAMLDump($myarray);
The symfony framework makes very heavy use of YAML, this blog post by Grégoire Hubert demonstrates using their YAML library in a non-symfony project.
Symfony2 有一个 YAML 组件,它支持大部分YAML 1.2 规范
试试sfYaml,这是我所知道的最好的。
Symfony 和 Doctrine ORM 正在使用这个。
要获得它,您可以下载 Doctrine 1.2并sfYaml
从vendor
目录中提取。
让我们知道它是否适合您的需求。
如果您需要快速测试您的 YAML,我构建了:http: //yaml-online-parser.appspot.com/。它帮助我编写 YAML,尤其是在刚学习的时候。