PHP で、YAML を操作する

Yossy
2025-06-25
2025-06-25
自作のアプリの設定をYAML で管理したり、YAML  ファイルの設定の正確性(整合性)などのチェックツールの作成に活用したいと思い、PHP で、YAML ファイルを操作する方法を確認したいと思います。

拡張ライブラリを利用する方法もあるようですが、今回は、composer を使えるようにできる、"symfony/yaml" を利用してみようと思います。

まず最初に、composer で、"symfony/yaml" を利用できるようにします。


# composer require symfony/yaml

いくつかファイルがダウンロードされ、"symfony/yaml" が利用できる準備が整いました。合わせて、autoloader 関連のファイルもインストールされています。

読み込む YAML ファイルを用意してます。

title: たいとる
values:
    no1: 数字1
    no2: 数字2
読み込み用の PHP スクリプトを書きます。
composer でダウロードした、"symfony/yaml" を利用するために、最初に、composer でインストールされた、autoloader を使えるようにしています。


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

use Symfony\Component\Yaml\Yaml;

$path = 'config.yaml';
if (file_exists($path)) {
    $config = Yaml::parseFile($path);
    var_dump($config);
}
実行すると、変数 $config に、YAML の内容が配列として読み込まれています。

array(2) {
  ["title"]=>
  string(12) "たいとる"
  ["values"]=>
  array(2) {
    ["no1"]=>
    string(9) "数字1"
    ["no2"]=>
    string(9) "数字2"
  }
}
非常に簡単なコードで読み込めました。

書き込みも、簡単です。

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

use Symfony\Component\Yaml\Yaml;

$path = 'config2.yaml';
$config = [
    'title' =>"たいとる", 
    'values' => [
        'no1' => '数字1',
        'no2' => '数字2',
    ]
];
$yaml = Yaml::dump($config);
file_put_contents($path, $yaml);
設定情報を YAML で書くことが増えてきたので、PHPで操作できると色々出来そうです。

詳細マニュアルはこちらから
https://symfony.com/doc/current/components/yaml.html