Lumenでyamlを使う

ちょっとした設定ファイルなどは、YAMLが書きやすくて低コストなので愛用しています。今回は、Laravelの軽量版・LumenでYamlを使う設定をまとめました。

ComposerでYamlをインストールする

Lumenを使っている場合は、Composerも使えることが多いと思いますので、Composerを使ってインストールします。

Yamlが使える拡張はいろいろありますが、Symfonyのものが良いようなので、そちらをインストールします。

composer install symfony/yaml

インストールができればcomposer.jsonが更新されます。

Lumenで使えるようにする

そのままでは、Lumenへのパスが通ってないので、Lumenのコントローラなどから簡単に呼び出せるようにaliasの設定をします。

/bootstrap/app.phpの任意の場所に、下記のコードを追記します。

if (!class_exists('Yaml')) {
    class_alias('Symfony\Component\Yaml\Yaml', 'Yaml');
}

これでOKです。

コントローラからYamlを呼び出す

LumenのコントローラからYamlを呼び出すのはクラスの最初で「use Yaml」と宣言すればOKです。

あとは、「Yaml::」でYamlクラスを呼び出せます。

<?php
namespace App\Http\Controllers;
use Yaml;

class HogeController extends Controller
{
     .
     .
     .
     .
     $yml = Yaml::parse(file_get_contents($yml_path));
     .
     .
     .
     .
}

parseしたYamlは、きちんと連想配列になっています。


LumenでYamlを使う方法をみてきました。

Yamlは最低限の記号でシンプルに配列データを格納できるので、DBにわざわざ入れるまでもないデータの取扱いで活躍してくれそうです。