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 yamlApós a instalação, adicione a linha no php.ini:
extension=yaml.soExemplo 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/yamlClasses principais
Symfony\\Component\\Yaml\\Yaml— fachada estática com os métodosparse()edump();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 Também na biblioteca
Autorização e Autenticação em Kotlin: Ktor, JWT e Spring Security
Processamento de Imagens em Kotlin: redimensionar e cortar com a biblioteca ImageMagick
Doctrine ORM para PHP: guia completo com exemplos práticos
Filas de Tarefas em Java: ExecutorService e ThreadPoolExecutor
ORM para Go (Golang): comparação e exemplos de bibliotecas populares