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.