¿Alguien sabe de un buen analizador YAML para PHP? Si es así, ¿cuáles son los pros y los contras de esta biblioteca?
¿Alguien sabe de un buen analizador YAML para PHP? Si es así, ¿cuáles son los pros y los contras de esta biblioteca?
Respuestas:
Última actualización : 26 de julio de 2017
Aquí hay un resumen del estado de YAML en PHP:
Implementaciones de PHP puro:
En el momento de escribir este artículo, las fechas de lanzamiento de las últimas versiones para las bibliotecas mencionadas anteriormente 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
Spyc: https://github.com/mustangostang/spyc
Implementación pura de PHP, por lo que no es necesario realizar modificaciones en el servidor para la instalación. Si la velocidad es un motivo de grave preocupación, puede que no sea la solución ideal, pero si está utilizando YAML para configuraciones o 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);
Dada una matriz, Spyc devolverá una cadena que contiene un documento YAML creado a partir de sus datos.
$yaml_str = Spyc::YAMLDump($myarray);
El framework Symfony hace un uso intensivo de YAML, esta publicación de blog de Grégoire Hubert demuestra el uso de su biblioteca YAML en un proyecto que no es Symfony.
Symfony2 tiene un componente YAML que admite la mayoría de las especificaciones YAML 1.2
sfYaml
por ejemplo, es.
Si está utilizando mucho YAML en su proyecto, puede encontrar que las bibliotecas PHP puras como spyc o Symfony YAML no son lo suficientemente rápidas. Hay al menos dos enlaces PHP para analizadores C YAML:
Sugeriría el proceso seguido en este artículo http://devzone.zend.com/article/2585-using-yaml-with-php-and-pecl
Prueba sfYaml , es lo mejor que conozco.
Symfony y Doctrine ORM están usando este.
Para obtenerlo, puede descargar Doctrine 1.2 y extraerlo sfYaml
del vendor
directorio.
Háganos saber si se adapta a sus necesidades.
Si necesita probar su YAML rápidamente, construí: http://yaml-online-parser.appspot.com/ . Me ayuda a escribir YAML, especialmente mientras estoy aprendiendo.