PHP:
Arbeiten mit YAML

Wie geht das:

PHP unterstützt in seinen aktuellen Iterationen das Parsen von YAML nicht als Teil seiner Standardbibliothek. Die einfachste Möglichkeit, mit YAML in PHP zu arbeiten, besteht darin, die Symfony YAML-Komponente oder die yaml PECL-Erweiterung zu verwenden.

Verwendung der Symfony YAML-Komponente

Zuerst installieren Sie die Symfony YAML-Komponente über Composer:

composer require symfony/yaml

Dann können Sie YAML-Inhalte wie folgt parsen und ausgeben:

<?php
require_once __DIR__.'/vendor/autoload.php';

use Symfony\Component\Yaml\Yaml;

// YAML parsen
$yamlString = <<<YAML
greet: Hallo, Welt!
framework:
  name: Symfony
  language: PHP
YAML;

$array = Yaml::parse($yamlString);
print_r($array);

// Erstellen von YAML aus einem Array
$array = [
    'greet' => 'Hallo, YAML!',
    'framework' => [
        'name' => 'Symfony',
        'language' => 'PHP',
    ],
];

$yaml = Yaml::dump($array);
echo $yaml;

Beispielausgabe beim Parsen:

Array
(
    [greet] => Hallo, Welt!
    [framework] => Array
        (
            [name] => Symfony
            [language] => PHP
        )

)

Beispielausgabe beim Ausgeben:

greet: Hallo, YAML!
framework:
    name: Symfony
    language: PHP

Verwendung der yaml PECL-Erweiterung

Falls gewünscht oder wenn es die Anforderungen Ihres Projekts zulassen, kann die PECL-Erweiterung eine weitere effiziente Möglichkeit sein, mit YAML zu arbeiten. Stellen Sie zunächst sicher, dass die Erweiterung installiert ist:

pecl install yaml

Aktivieren Sie sie dann in Ihrer php.ini-Konfiguration:

extension=yaml.so

So parsen und erzeugen Sie YAML:

<?php

// YAML parsen
$yamlString = <<<YAML
greet: Hallo, Welt!
framework:
  name: Symfony
  language: PHP
YAML;

$array = yaml_parse($yamlString);
print_r($array);

// Erstellen von YAML aus einem Array
$array = [
    'greet' => 'Hallo, YAML!',
    'framework' => [
        'name' => 'Symfony',
        'language' => 'PHP',
    ],
];

$yaml = yaml_emit($array);
echo $yaml;

Die Ausgabe wird der der Symfony-Komponente ähnlich sein und veranschaulicht die Rolle von YAML als Brücke zwischen dem für Menschen lesbaren Format und PHP-Arraystrukturen, was eine einfachere Konfiguration und Datenhandhabung ermöglicht.