PHP:
YAML を操作する

どのように:

現行のバージョンのPHPでは、標準ライブラリの一部としてYAMLの解析をサポートしていません。PHPでYAMLを扱う最も簡単な方法は、Symfony YAMLコンポーネントまたはyaml PECL拡張を使用することです。

Symfony YAMLコンポーネントを使用する

まずは、Composer経由でSymfony YAMLコンポーネントをインストールします:

composer require symfony/yaml

次に、以下のようにYAMLコンテンツを解析・ダンプします:

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

use Symfony\Component\Yaml\Yaml;

// YAMLの解析
$yamlString = <<<YAML
greet: Hello, World!
framework:
  name: Symfony
  language: PHP
YAML;

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

// 配列からYAMLを作成
$array = [
    'greet' => 'Hello, YAML!',
    'framework' => [
        'name' => 'Symfony',
        'language' => 'PHP',
    ],
];

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

解析時のサンプル出力:

Array
(
    [greet] => Hello, World!
    [framework] => Array
        (
            [name] => Symfony
            [language] => PHP
        )

)

ダンプ時のサンプル出力:

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

yaml PECL拡張を使用する

プロジェクトの要件が許される場合、または好みであれば、PECL拡張もYAMLを扱うための効率的な方法の一つです。まず、拡張機能がインストールされていることを確認します:

pecl install yaml

次に、php.ini設定で有効にします:

extension=yaml.so

ここで、YAMLの解析と発行を行います:

<?php

// YAMLの解析
$yamlString = <<<YAML
greet: Hello, World!
framework:
  name: Symfony
  language: PHP
YAML;

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

// 配列からYAMLを作成
$array = [
    'greet' => 'Hello, YAML!',
    'framework' => [
        'name' => 'Symfony',
        'language' => 'PHP',
    ],
];

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

出力はSymfonyコンポーネントのものと似ており、YAMLが人間が読める形式とPHPの配列構造との間の橋渡しとしての役割を示しており、より簡単な設定やデータ処理を促進します。