Arbeiten mit YAML in PHP: Bibliotheken, Parsen und Erstellen von Dateien

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Arbeiten mit YAML in PHP: Bibliotheken und Werkzeuge



YAML (YAML Ain't Markup Language) ist ein für Menschen lesbares Daten-Serialisierungsformat. Es wird häufig für Konfigurationsdateien, die Definition von Datenschemata und den Informationsaustausch zwischen Diensten verwendet. In PHP gibt es mehrere Möglichkeiten, mit YAML zu arbeiten: von integrierten Erweiterungen (sofern vorhanden) bis hin zu leistungsstarken Drittanbieter-Bibliotheken. In diesem Artikel werden wir die wichtigsten Werkzeuge, ihre Installation und praktische Beispiele im Detail besprechen.



Warum wird YAML in PHP benötigt?

PHP-Entwickler nutzen YAML aktiv für:

  • Konfigurationsdateien von Frameworks (Symfony, in einigen Fällen Laravel);
  • Beschreibung von Datenbank-Migrationen;
  • Speicherung von Übersetzungen und Lokalisierung;
  • Definition der Struktur von Testdaten (Fixtures);
  • Konfiguration von CI/CD (GitLab CI, Ansible).

Zu verstehen, wie man YAML in PHP parst und erstellt, ist eine unverzichtbare Fähigkeit für moderne Backend-Entwickler.



1. Integrierte yaml-Erweiterung (PECL)

Die leistungsfähigste Methode ist die Verwendung der Erweiterung yaml, die über PECL installiert wird. Sie bietet zwei Schlüsselfunktionen:

  • yaml_parse() — wandelt einen YAML-String in ein PHP-Array um;
  • yaml_emit() — wandelt ein PHP-Array in einen YAML-String um.


Installation

pecl install yaml

Fügen Sie nach der Installation die folgende Zeile in php.ini ein:

extension=yaml.so


Anwendungsbeispiel

<?php// Parsen eines YAML-Strings$yamlString = "database:  host: localhost  port: 3306  name: test_db";

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

// Erstellen von YAML aus einem Array$data = [ 'app' => [ 'name' => 'MyApp', 'version' => '2.0' ]];

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


2. Symfony Yaml Bibliothek (empfohlene Methode)

Wenn Sie keine Möglichkeit haben, PECL-Erweiterungen zu installieren (z. B. auf Shared Hosting), ist die beste Wahl die Bibliothek Symfony Yaml. Sie ist Teil des Symfony-Ökosystems, funktioniert aber hervorragend als eigenständige Komponente. Die Bibliothek ist vollständig in PHP geschrieben, benötigt keine externen Abhängigkeiten und unterstützt alle Funktionen von YAML 1.1 und 1.2.



Installation über Composer

composer require symfony/yaml


Hauptklassen

  • Symfony\\Component\\Yaml\\Yaml — statische Fassade mit den Methoden parse() und dump();
  • Symfony\\Component\\Yaml\\Parser — Klasse zum Parsen mit zusätzlichen Optionen;
  • Symfony\\Component\\Yaml\\Dumper — Klasse zum Erstellen von YAML mit feiner Formatierungseinstellung.


Beispiel für das Parsen von 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 'Fehler beim Parsen von YAML: ' . $e->getMessage();}?>


Erstellen von YAML (Dump) aus einem Array

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

$yaml = Yaml::dump($config, 3, 2);// Das zweite Argument ist die Verschachtelungsebene (inline), das dritte die Einrückung in Leerzeichenecho $yaml;?>


Ergebnis der Ausführung:

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

Empfehlungen