PHP YAML Parsers [closed]
Last updated: July 26th, 2017
Here's a summary of the state of YAML in PHP:
- Wrappers to C libraries: You'll probably want these if you need sheer speed:
- php-yaml: Wrapper for LibYAML. Available as a PECL extension; it is also the one on PHP's docs.
- syck: Binding to syck; also available as a PECL extension. (dated, see below)
Pure PHP implementations:
At the time of this writing, the latest versions release dates for the aforementioned libraries and the versions of the YAML spec (1.2 is the latest version) they support are:
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.0sfYaml 3.3.5 2017-06-15 YAML 1.1, most of 1.2spyc 0.6.2 2017-02-24 YAML 1.1
Spyc: https://github.com/mustangostang/spyc
Pure PHP implementation, so you don't need to make any modifications to the server for installation. If speed is of dire concern, it might not be the ideal solution, but if you're using YAML for configurations or relatively low-volume use, it is a fantastic solution.
Given a YAML document, Spyc will return an array that you can use however you see fit.
require_once "spyc.php";$data = Spyc::YAMLLoad($myfile);
Given an array, Spyc will return a string which contains a YAML document built from your data.
$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.