PHP YAML解析器

sgi*_*ons 105 php parsing yaml

有没有人知道PHP的YAML解析器?如果是这样,这个图书馆的优点和缺点是什么?

Nul*_*ion 137

最后更新时间:2017年7月26日

以下是PHP中YAML状态的摘要:

  • C库的包装:如果你需要纯粹的速度,你可能会想要这些:
  • 纯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 
Run Code Online (Sandbox Code Playgroud)

  • 我已经使用sfYaml大约两年了,在性能测试中我意识到sfYaml :: parse()占用了大部分处理时间.我用php-yaml替换它,现在应用程序快了70%!这是一个巨大的差异. (3认同)

dro*_*owe 49

Spyc:https://github.com/mustangostang/spyc

纯PHP实现,因此您无需对服务器进行任何修改即可进行安装.如果速度令人担忧,它可能不是理想的解决方案,但如果您使用YAML进行配置或相对小批量使用,那么这是一个很棒的解决方案.

给定一个YAML文档,Spyc将返回一个你认为合适的数组.

require_once "spyc.php";
$data = Spyc::YAMLLoad($myfile);
Run Code Online (Sandbox Code Playgroud)

给定一个数组,Spyc将返回一个字符串,其中包含根据您的数据构建的YAML文档.

$yaml_str = Spyc::YAMLDump($myarray);
Run Code Online (Sandbox Code Playgroud)


Dan*_*ley 15

symfony框架使得非常大量使用YAML,这的博客文章由格雷休伯特使用他们的YAML库在非symfony项目演示.


小智 7

Symfony2有一个YAML组件,支持大多数 YAML 1.2规范

https://github.com/symfony/Yaml