¿Alguien sabe de un buen analizador YAML para PHP? Si es así, ¿cuáles son los pros y los contras de esta biblioteca?PHP YAML Parsers
Respuesta
me gustaría sugerir el proceso seguido en este artículo http://devzone.zend.com/article/2585-using-yaml-with-php-and-pecl
-1 ¿por qué? Esta es una respuesta de "solo enlace". –
El symfony framework hace un uso muy intensivo de YAML, este blog post by Grégoire Hubert demuestra el uso de su biblioteca YAML en un proyecto sin fines de Symfony.
Spyc: https://github.com/mustangostang/spyc
aplicación PHP puro, 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 vector, Spyc devolverá una cadena que contiene un documento YAML construido a partir de sus datos.
$yaml_str = Spyc::YAMLDump($myarray);
+1 \t Solo quería una manera 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). Descubrí que spyc, listado como "otro analizador de YAML" era una solución de 1 clic. Solté el único script en mi carpeta de scripts, lo incluí y llamé a un método. No es más fácil que eso, y ahora voy a volver al trabajo: se eliminó la barricada. –
Si está utilizando una gran cantidad de YAML en su proyecto es posible que las librerías PHP puros como SPYC o Symfony YAML no son lo suficientemente rápido. Hay por lo menos dos enlaces de PHP para analizadores C YAML:
Try sfYaml, es lo mejor que sé.
Symfony y Doctrine ORM están utilizando este. Para obtenerlo, puede Download Doctrine 1.2 y extraer sfYaml
del directorio vendor
.
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.
Utilizándolo ahora, muy bien y gracias por ponerlo en línea – Aktau
Última actualización: 26a de julio de, 2017
He aquí un resumen del estado de YAML en PHP:
- envolturas a bibliotecas de C: Usted probablemente querrá estos si necesita velocidad absoluta:
- php-yaml: Contenedor para LibYAML. Disponible como una extensión PECL; también es el de PHP's docs.
- syck: Enlace a syck; también disponible como una extensión PECL.(Fecha, véase más adelante)
implementaciones puro PHP:
En el momento de escribir estas líneas, las últimas versiones fechas de lanzamiento para las bibliotecas mencionadas y las versiones de la YAML spec (1.2 es la versión más reciente) que apoyan 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
Hay otras bibliotecas menos conocidas (como [ésta] (http://pear.horde.org/index.php?package=yaml), de la Horda proyecto), pero no quería profundizar mucho en esto. – NullUserException
¡Gracias por la investigación! –
He estado usando sfYaml durante aproximadamente dos años, y en una prueba de rendimiento me di cuenta de que sfYaml :: parse() tomó la mayor parte del 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. –
Symfony2 tiene un componente YAML que soporta más de la especificación YAML 1,2
Esta es una buena respuesta porque el analizador Symfony2 YAML no está desactualizado. 'sfYaml' p. es. – ferdynator
- 1. Opción Parsers para C/C++?
- 2. editor yaml basado en navegador, preferiblemente en PHP?
- 3. ¿Cómo utilizar las devoluciones de etiquetas personalizadas de PHP-YAML?
- 4. ¿Cómo puedo caminar un árbol YAML con Perl's YAML :: Tiny?
- 5. tipo de mime YAML?
- 6. Conservar orden YAML perl
- 7. YAML comparado con XML
- 8. Analizador YAML en Delphi?
- 9. Emisor Yaml en C++
- 10. Yaml merge en Python
- 11. Invalidar subclave YAML
- 12. Emacs Edición Yaml
- 13. C# Yaml Procesamiento
- 14. Ruby YAML :: cargar
- 15. JavaScript YAML Parser
- 16. Ruby YAML escribe sin alias
- 17. ¿Cómo especificar rangos en YAML?
- 18. ruby yaml ypath como xpath?
- 19. symfony2 yaml: sobrescribir la configuración
- 20. YAML: diccionario con valor vacío
- 21. Uso Yaml para MongoMapper Config
- 22. Archivos Parse YAML en C++
- 23. Analizando Psych YAML incluyendo comentarios
- 24. Conservar líneas nuevas en YAML
- 25. Markdown dentro de la secuencia de escape de múltiples líneas yaml/yaml?
- 26. cómo representar un campo vacío en yaml
- 27. Biblioteca de serialización YAML para C++?
- 28. ¿Serializar un objeto a JSON, XML, YAML?
- 29. Symfony 2 matrices de paso YAML
- 30. Incrustar datos JSON en el archivo YAML
probarlo "SPYC" lib http://spyc.sourceforge.net/ – Shreef
1 aunque no constructiva, esta página ha sido extremadamente útil para mí –
teniendo en cuenta la calidad de la respuesta más alta votado en esta pregunta, es sorprendente que esta pregunta se haya cerrado como "no constructiva". – dreftymac