PHP:
Arbeider med YAML

Hvordan:

PHP, i sine nåværende iterasjoner, støtter ikke parsing av YAML som en del av sitt standardbibliotek. Den mest strake veien til å arbeide med YAML i PHP er ved å bruke Symfony YAML-komponenten eller yaml PECL-utvidelsen.

Bruke Symfony YAML-komponenten

Først, installer Symfony YAML-komponenten via Composer:

composer require symfony/yaml

Deretter kan du parse og dumpe YAML-innhold som følger:

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

use Symfony\Component\Yaml\Yaml;

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

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

// Lage YAML fra et array
$array = [
    'greet' => 'Hallo, YAML!',
    'framework' => [
        'name' => 'Symfony',
        'language' => 'PHP',
    ],
];

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

Eksempel på output når man parser:

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

)

Eksempel på output når man dumper:

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

Bruke yaml PECL-utvidelsen

Om du foretrekker, eller om prosjektets krav tillater det, kan PECL-utvidelsen være en annen effektiv måte å arbeide med YAML på. Først, sørg for at utvidelsen er installert:

pecl install yaml

Deretter, aktiver den i din php.ini-konfigurasjon:

extension=yaml.so

Her er hvordan du parser og emitter YAML:

<?php

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

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

// Lage YAML fra et array
$array = [
    'greet' => 'Hallo, YAML!',
    'framework' => [
        'name' => 'Symfony',
        'language' => 'PHP',
    ],
];

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

Outputen vil være lignende som med Symfony-komponenten, noe som illustrerer YAMLs rolle som en bro mellom menneskelesbart format og PHP array-strukturer, noe som lettere tilrettelegger for konfigurasjon og databehandling.