有没有人知道PHP的YAML Parser?如果是这样,这个图书馆的利弊是什么?
答案 0 :(得分:136)
上次更新:2017年7月26日
以下是PHP中YAML状态的摘要:
纯PHP实现:
在撰写本文时,上述库的最新版本发布日期以及它们支持的YAML spec版本(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
答案 1 :(得分:48)
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);
答案 2 :(得分:15)
symfony framework非常大量地使用YAML,这个blog post by Grégoire Hubert演示了在非symfony项目中使用他们的YAML库。
答案 3 :(得分:7)
Symfony2有一个YAML组件,它支持大多数的YAML 1.2规范
答案 4 :(得分:3)
答案 5 :(得分:3)
如果您在项目中使用了大量的YAML,您可能会发现像spyc或Symfony YAML这样的纯PHP库不够快。 C YAML解析器至少有两个PHP绑定:
答案 6 :(得分:2)
尝试 sfYaml ,这是我所知道的最好的。
Symfony和Doctrine ORM正在使用这个。
要获得它,您可以Download Doctrine 1.2从sfYaml
目录中提取vendor
。
请告诉我们是否符合您的需求。
答案 7 :(得分:2)
如果你需要快速测试你的YAML,我建立了http://yaml-online-parser.appspot.com/。它帮助我写YAML,特别是在学习的时候。