+1 aunque no constructivo, esta página fue extremadamente útil para mí
Erick Robertson
2
teniendo en cuenta la calidad de la respuesta más votada sobre esta pregunta, es sorprendente que esta pregunta se haya cerrado como "no constructiva".
dreftymac
Acabo de publicar mi analizador de BabyYaml, que es un primo más simple de Yaml, si estás interesado, compruébalo aquí: github.com/lingtalfi/BabyYaml
ling
Tengo que estar de acuerdo con ErickRobertson y dreftymac, esto literalmente respondió bien a mi pregunta, y cerrarla ha impedido otras posibles buenas respuestas.
Pharaoh Tools
Respuestas:
139
Última actualización : 26 de julio de 2017
Aquí hay un resumen del estado de YAML en PHP:
Envoltorios para bibliotecas C: probablemente los querrá si necesita gran velocidad:
syck : Enlace a syck; también disponible como extensión PECL. (fechado, ver más abajo)
Implementaciones de PHP puro:
sfYaml : componente YAML de Symfony. Puedes ver las motivaciones de sus autores aquí . Quería algo que fuera " fácil de usar, rápido, probado en la unidad y con mensajes de error claros ".
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:
Hay otras bibliotecas menos conocidas (como esta , del proyecto Horde), pero no quería profundizar mucho en ellas.
NullUserException
3
He estado usando sfYaml durante aproximadamente dos años, y en una prueba de rendimiento me di cuenta de que sfYaml :: parse () aprovechó al máximo el tiempo de procesamiento. Lo reemplacé con php-yaml y la aplicación ahora es un 70% más rápida. Esa es una gran diferencia.
Attila Fulop
1
Actualización de 2019 para PHP: "spyc" tiene muchos problemas, mientras que "sfYaml" funciona bien.
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.
+1 Solo quería una forma rápida y fácil de usar YAML en un script de importación. Mi aplicación no necesita ningún soporte más allá de las importaciones (y probablemente algún día las exportaciones). Encontré que spyc, listado como "otro analizador YAML más", era una solución de 1 clic. Dejé el único script en mi carpeta de scripts, lo incluí y llamé a un método. No hay nada más fácil que eso, y ahora voy a volver al trabajo: se eliminó el obstáculo.
Erick Robertson
1
Muchos archivos yaml obsoletos y analizados incorrectamente (se pierden algunos datos).
Esta es una buena respuesta porque el analizador Symfony2 YAML no está desactualizado. sfYamlpor ejemplo, es.
ferdynator
3
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:
yaml : un contenedor para la biblioteca del analizador LibYAML YAML 1.1
syck : un contenedor para la biblioteca del analizador Syck YAML 1.0
Si necesita probar su YAML rápidamente, construí: http://yaml-online-parser.appspot.com/ . Me ayuda a escribir YAML, especialmente mientras estoy aprendiendo.
Respuestas:
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:
fuente
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.
Dada una matriz, Spyc devolverá una cadena que contiene un documento YAML creado a partir de sus datos.
fuente
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.
fuente
Symfony2 tiene un componente YAML que admite la mayoría de las especificaciones YAML 1.2
https://github.com/symfony/Yaml
fuente
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:
fuente
Sugeriría el proceso seguido en este artículo http://devzone.zend.com/article/2585-using-yaml-with-php-and-pecl
fuente
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
delvendor
directorio.Háganos saber si se adapta a sus necesidades.
fuente
Si necesita probar su YAML rápidamente, construí: http://yaml-online-parser.appspot.com/ . Me ayuda a escribir YAML, especialmente mientras estoy aprendiendo.
fuente