parser php parsing yaml

PHP YAML Parsers



symfony/yaml (8)

Última actualización : 26 de julio de 2017

Aquí hay un resumen del estado de YAML en PHP:

  • Wrappers to C libraries: probablemente querrás estos si necesitas una gran velocidad:
  • Implementaciones de PHP puro:

    • sfYaml : componente YAML de Symfony. Puedes ver las motivaciones de sus autores here . Quería algo que fuera " fácil de usar, rápido, probado en unidades y que tuviera mensajes de error claros ".
    • spyc : analizador YAML sin dependencias

En el momento de escribir estas líneas, las últimas versiones de las fechas de lanzamiento de las bibliotecas antes mencionadas y las versiones de la especificación YAML (1.2 es la última versión) que admiten son:

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

¿Alguien sabe de un buen Analizador YAML para PHP? Si es así, ¿cuáles son los pros y los contras de esta biblioteca?



Prueba sfYaml , es lo mejor que sé.

Symfony y Doctrine ORM están usando este.

Para obtenerlo, puede descargar Doctrine 1.2 y extraer sfYaml del directorio del vendor .

Háganos saber si se adapta a sus necesidades.


Si está utilizando una gran cantidad de YAML en su proyecto, es posible que las bibliotecas PHP puras como spyc o Symfony YAML no sean lo suficientemente rápidas. Hay al menos dos enlaces PHP para analizadores C YAML:

  • yaml - un contenedor para la biblioteca del analizador LibYAML YAML 1.1
  • syck - un contenedor para la biblioteca del analizador Syck YAML 1.0


Spyc: spyc

Implementación pura de PHP, por lo que no es necesario realizar ninguna modificación en el servidor para su instalación. Si la velocidad es de gran preocupación, puede que no sea la solución ideal, pero si usa YAML para configuraciones o para un uso de volumen relativamente bajo, es una solución fantástica.

Dado un documento YAML, Spyc devolverá una matriz que puede usar como mejor le parezca.

require_once "spyc.php"; $data = Spyc::YAMLLoad($myfile);

Dado un conjunto, Spyc devolverá una cadena que contiene un documento YAML creado a partir de sus datos.

$yaml_str = Spyc::YAMLDump($myarray);