Trabajo con YAML en PHP: bibliotecas, análisis y creación de archivos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Trabajo con YAML en PHP: bibliotecas y herramientas



YAML (YAML Ain't Markup Language) es un formato de serialización de datos fácil de leer para los humanos. Se utiliza a menudo para archivos de configuración, definición de esquemas de datos e intercambio de información entre servicios. En PHP existen varias formas de trabajar con YAML: desde extensiones integradas (si están disponibles) hasta potentes bibliotecas de terceros. En este artículo, analizaremos en detalle las principales herramientas, su instalación y ejemplos prácticos.



¿Por qué necesitas YAML en PHP?

Los desarrolladores de PHP utilizan activamente YAML para:

  • Archivos de configuración de frameworks (Symfony, Laravel en algunos casos);
  • Descripción de migraciones de bases de datos;
  • Almacenamiento de traducciones y localización;
  • Definición de la estructura de datos de prueba (fixtures);
  • Configuración de CI/CD (GitLab CI, Ansible).

Comprender cómo analizar y crear YAML en PHP es una habilidad obligatoria para cualquier desarrollador backend moderno.



1. Extensión integrada yaml (PECL)

La forma más eficiente es usar la extensión yaml, instalable a través de PECL. Proporciona dos funciones clave:

  • yaml_parse() — convierte una cadena YAML en un array de PHP;
  • yaml_emit() — convierte un array de PHP en una cadena YAML.


Instalación

pecl install yaml

Después de la instalación, agregue la siguiente línea en php.ini:

extension=yaml.so


Ejemplo de uso

<?php// Análisis de una cadena YAML$yamlString = "database:  host: localhost  port: 3306  name: test_db";

$config = yaml_parse($yamlString);echo $config['database']['host']; // localhost

// Creación de YAML a partir de un array$data = [ 'app' => [ 'name' => 'MyApp', 'version' => '2.0' ]];

$yamlOutput = yaml_emit($data);echo $yamlOutput;?>


2. Biblioteca Symfony Yaml (método recomendado)

Si no tiene la posibilidad de instalar extensiones PECL (por ejemplo, en un hosting compartido), la mejor opción es la biblioteca Symfony Yaml. Es parte del ecosistema Symfony, pero funciona perfectamente como componente independiente. La biblioteca está completamente escrita en PHP, no requiere dependencias externas y admite todas las características de YAML 1.1 y 1.2.



Instalación a través de Composer

composer require symfony/yaml


Clases principales

  • Symfony\\Component\\Yaml\\Yaml — fachada estática con los métodos parse() y dump();
  • Symfony\\Component\\Yaml\\Parser — clase para análisis con opciones adicionales;
  • Symfony\\Component\\Yaml\\Dumper — clase para crear YAML con ajuste fino del formato.


Ejemplo de análisis de YAML

<?phprequire_once 'vendor/autoload.php';

use Symfony\\Component\\Yaml\\Yaml;

$yamlContent = "server: host: 0.0.0.0 port: 8080 ssl: true";

try { $array = Yaml::parse($yamlContent); print_r($array); // Array ( [server] => Array ( [host] => 0.0.0.0 [port] => 8080 [ssl] => 1 ) )} catch (\\Symfony\\Component\\Yaml\\Exception\\ParseException $e) { echo 'Error de análisis de YAML: ' . $e->getMessage();}?>


Creación de YAML (volcado) a partir de un array

<?php$config = [    'application' => [        'name' => 'PHP App',        'debug' => true,        'database' => [            'driver' => 'mysql',            'host' => 'localhost',            'user' => 'root'        ]    ]];

$yaml = Yaml::dump($config, 3, 2);// El segundo argumento es el nivel de anidamiento (inline), el tercero es la sangría en espaciosecho $yaml;?>


Resultado de la ejecución:

application:  name: 'PHP App'  debug: true  database:    driver: mysql                    

Recommendations