¿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. C# Yaml Procesamiento
- 6. Invalidar subclave YAML
- 7. Analizador YAML en Delphi?
- 8. tipo de mime YAML?
- 9. Yaml merge en Python
- 10. YAML comparado con XML
- 11. Ruby YAML :: cargar
- 12. JavaScript YAML Parser
- 13. Emacs Edición Yaml
- 14. Emisor Yaml en C++
- 15. Conservar orden YAML perl
- 16. Analizando Psych YAML incluyendo comentarios
- 17. YAML: diccionario con valor vacío
- 18. Ruby YAML escribe sin alias
- 19. Uso Yaml para MongoMapper Config
- 20. ¿Cómo especificar rangos en YAML?
- 21. Conservar líneas nuevas en YAML
- 22. symfony2 yaml: sobrescribir la configuración
- 23. Archivos Parse YAML en C++
- 24. ruby yaml ypath como xpath?
- 25. Markdown dentro de la secuencia de escape de múltiples líneas yaml/yaml?
- 26. llaves múltiples para un valor en yaml
- 27. ¿Cómo convierto YAML a XML en Perl?
- 28. yaml en Google App Engine con index.html
- 29. Verifique la existencia de la clave YAML
- 30. Opciones para colapsar YAML cuando se ve?
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