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の配列構造との間の橋渡しとしての役割を示しており、より簡単な設定やデータ処理を促進します。