Blog de Gonzalo

Blog de programación de Gonzalo López

PROCESAR YAML EN PHP

PHP

La extensión yaml de php (php_yaml), permite procesar yaml en php. YAML es el acrónimo de "YAML Ain’t Markup Language", es un formato de serialización de datos legible por humanos, utilizado para almacenar y estructurar información de manera simple y clara. Se usa comúnmente en archivos de configuración, como en aplicaciones, frameworks, y herramientas de CI/CD.
Esta extensión es útil para leer, escribir y manipular datos en formato yaml desde aplicaciones php.

Características principales de YAML
  • Legibilidad: Su sintaxis es minimalista y fácil de entender, con un enfoque en la claridad para humanos.
  • Estructura jerárquica: Usa indotación (generalmente 2 espacios) para definir niveles de anidamiento, similar a Python.
  • Tipos de datos: Soporta estructuras como listas, mapas (clave-valor), escalares (números, cadenas, booleanos), etc.
  • Portabilidad: Es independiente del lenguaje y puede ser procesado por muchas herramientas y lenguajes (PHP, Python, JavaScript, etc.).
Usos
  • Obtener un yaml desde un fichero yaml: "yaml_parse_file('ruta/fichero.yaml');", guarda el contenido, de un archivo yaml, en un array asociativo.
  • Crear un fichero yaml: "yaml_emit_file('ruta/fichero.yaml',$array_asociativo,YAML_ANY_ENCODING, YAML_ANY_BREAK);", guarda el contenido de un array en un fichero yaml. YAML_ANY_ENCODING es una constante que permite, al emisor, elegir la codificación. YAML_ANY_BREAK es una constante que permite, al emisor, elegir el salto de línea.
  • Obtener un yaml desde una url: "yaml_parse_url($url);" guarda el contenido, de un archivo yaml, en otro servidor, en un array asociativo.
Comparación con otros formatos
  • JSON: Más estricto, menos legible para humanos, pero más común en APIs.
  • XML: Más verboso, menos usado hoy en día para configuraciones.
Usos comunes
  • Archivos de configuración (por ejemplo, symfony).
  • Definición de pipelines en herramientas como GitHub Actions o GitLab CI.
  • Almacenamiento de datos estructurados en aplicaciones.

Compartir en twitter