はじめに
Laravelでは、.envから環境変数を読み込む際、env()が使われます。
ただし、このenv()で直接.envにアクセスするのは好ましくありません。
理由としては、Laravelは設定ファイルのキャッシュが存在する場合、
.envを読み込まずにキャッシュを参照する仕様になっているためです。
ではどうすればいいのかというと、タイトルにある通り、config()を使用します。
本記事では、このconfig()での.env読み込みについて、
Lumenで実装する方法についてまとめます。
※Laravelでの具体的な実装例やenv()を使ってはいけない理由などをブログに詳しくまとめられている方がいらっしゃいます。
本記事では詳細には触れないので、気になる方はこちらをご覧ください。
Laravel の .env の値は config() 経由で使う
Lumenでconfig()を使う
-
configディレクトリ配下に任意の名前のファイルを作成します。
<?php
return [
'fuga' => env('FUGA')
];
ここでは、.envにあるFUGAという環境変数を登録することにします。
-
bootstrap/app.phpに以下のコードを追記
// 追記
$app->configure('hoge');
ここがLaravelとは違ってLumen独自の設定となります。
configure()の引数には、上で作成したファイル名を入れます。(今回は'hoge')
設定は以上です。
あとは環境変数を呼び出したいところで、以下のように呼び出せます。
config('hoge.fuga');
おわりに
Lumenを触ることになって間もないですが、やはりLaravelとは違う部分が所々に見られて、
戸惑うことが多いですね...