拡張ライブラリを利用する方法もあるようですが、今回は、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