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 yamlFügen Sie nach der Installation die folgende Zeile in php.ini ein:
extension=yaml.soAnwendungsbeispiel
<?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/yamlHauptklassen
Symfony\\Component\\Yaml\\Yaml— statische Fassade mit den Methodenparse()unddump();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 Auch in der Bibliothek
Reaktive Programmierung in Go (Golang): Bibliotheken, Muster und Beispiele
AVFoundation für Swift: Das komplette Tutorial mit Beispielen
Zod — leistungsstarke Bibliothek zur Datenvalidierung in TypeScript