Trabalhando com YAML em PHP: bibliotecas, parsing e criação de arquivos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Trabalhando com YAML em PHP: bibliotecas e ferramentas



YAML (YAML Ain't Markup Language) é um formato de serialização de dados, fácil de ler por humanos. Ele é frequentemente usado para arquivos de configuração, definição de esquemas de dados e troca de informações entre serviços. Em PHP, existem várias maneiras de trabalhar com YAML: desde extensões nativas (quando disponíveis) até poderosas bibliotecas de terceiros. Neste artigo, vamos detalhar as principais ferramentas, sua instalação e exemplos práticos.



Por que usar YAML em PHP?

Desenvolvedores PHP usam YAML ativamente para:

  • Arquivos de configuração de frameworks (Symfony, Laravel em alguns casos);
  • Descrição de migrações de banco de dados;
  • Armazenamento de traduções e localização;
  • Definição da estrutura de dados de teste (fixtures);
  • Configuração de CI/CD (GitLab CI, Ansible).

Entender como fazer parsing e criar YAML em PHP é uma habilidade obrigatória para um desenvolvedor backend moderno.



1. Extensão nativa yaml (PECL)

A maneira mais performática é usar a extensão yaml, instalada via PECL. Ela fornece duas funções principais:

  • yaml_parse() — converte uma string YAML em um array PHP;
  • yaml_emit() — converte um array PHP em uma string YAML.


Instalação

pecl install yaml

Após a instalação, adicione a linha no php.ini:

extension=yaml.so


Exemplo de uso

<?php// Parsing de string YAML$yamlString = "database:  host: localhost  port: 3306  name: test_db";

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

// Criação de YAML a partir de um array$data = [ 'app' => [ 'name' => 'MyApp', 'version' => '2.0' ]];

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


2. Biblioteca Symfony Yaml (maneira recomendada)

Se você não tem a possibilidade de instalar extensões PECL (por exemplo, em hospedagem compartilhada), a melhor escolha é a biblioteca Symfony Yaml. Ela faz parte do ecossistema Symfony, mas funciona perfeitamente como um componente independente. A biblioteca é totalmente escrita em PHP, não requer dependências externas e suporta todos os recursos do YAML 1.1 e 1.2.



Instalação via Composer

composer require symfony/yaml


Classes principais

  • Symfony\\Component\\Yaml\\Yaml — fachada estática com os métodos parse() e dump();
  • Symfony\\Component\\Yaml\\Parser — classe para parsing com opções adicionais;
  • Symfony\\Component\\Yaml\\Dumper — classe para criar YAML com ajuste fino de formatação.


Exemplo de parsing 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 'Erro ao fazer parsing do YAML: ' . $e->getMessage();}?>


Criação de YAML (dump) a partir de um array

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

$yaml = Yaml::dump($config, 3, 2);// O segundo argumento é o nível de aninhamento (inline), o terceiro é a indentação em espaçosecho $yaml;?>


Resultado da execução:

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

Recommendations