laravelで環境設定ファイル.envの使い方

laravel
この記事は約3分で読めます。
スポンサーリンク
スポンサーリンク

こんにちは。

laravelでは、環境ごとに違う値をセットする必要がある設定項目は、ルートディレクトリにある.envファイルに行います。

この記事では、.envの特徴と使い方を紹介します。

スポンサーリンク
スポンサーリンク

laravelで環境設定ファイル.envの使い方

.envファイルの特徴

.envファイルへは、ローカル環境や、ステージング環境、本番環境で異なる値を設定する必要がある設定項目を記述します。

このファイルには以下の特徴があります。

  • 使用するデータベース情報や、外部サーバーの機密情報を記述
    どの環境でも共通して使う設定項目は、/configフォルダ内に行います。
  • 環境設定、デバッグ設定も行なう
    本番環境には、APP_ENV=production、テスト環境では APP_ENV=local というように.envの中でそのサーバーの用途を設定していれば、間違って本番環境で、デバッグ中のサーバーデータを公開してしまうことがなくなり、管理が確実にできます。
  • バージョン管理ファイルには登録しない
    環境ごとに異なるデータを設定すること、データベースのパスワードなど機密情報を設定することなどから、バージョン管理に入れません。

実際の.envの内容

下図が .env.sample からコピーして作成した.envファイルです。使わない機能の設定はそのままにしておけば問題ないです。

また、サーバーごとに変えたい設定が出てきたら、あとから追加することが出来ます。

.envに記述した設定を参照する方法

.envに記述した設定を参照するにはenv()関数を使います。

例えば、/configフォルダにはたくさん設定がありますが、その中には、.envの設定を参照しているものもあります。

例えば、/configフォルダの app.php にはアプリケーションの設定がいくつもあります。

そのうち、name は、.envファイルのAPP_NAME、envは、APP_ENV、debugはAPP_DEBUG を参照しています。

env()関数は、

のように使います。

例えば、 'name' => env('APP_NAME', 'Laravel'),  では、’name’というキーに、.envファイルの APP_NAME で定義された文字列を設定します。なければ、’Laravel’という文字列を設定します。

/config/app.php に設定された項目を参照するには、config()関数を使います。例えば、

config('app.name', 'Laravel') は、config/app.php の中に定義されたnameという設定を返答します。nameが定義されていないときは、config関数は第2引数の ‘Laravel’ を返答します。
くわしくは、Laravelのマニュアルサイトを参照ください。
https://readouble.com/laravel/6.0/ja/configuration.html

まとめ

.envファイルは、環境ごとに異なる設定を記述するファイルでした。

環境ごとに共有されないこと、パスワードなど接続情報が記述されるため、バージョン管理ツールでは管理しないファイルになります。

参照するには、env()関数を使います。自分で機能を追加する際にも、.envファイルへの設定は使えますので、環境ごとに設定を変更したい値があったら、.envへの記載を検討してみてください。

 

僕が最近手掛けた案件では、テストサイトと本番サイトで違うアカウントを取得して外部サービスのAPIへアクセスするために、.env に設定を追加したりしました。

そんな.envへの設定を追加するような外部サービスとの連携のやり方を紹介する記事も今後書いていきます。内容によってはメルマガでの紹介になったりしますので、よかったら、下のフォームからメルマガにも登録してみてください。

メルマガ登録フォーム

氏名*
メールアドレス*
確認用メール アドレス*

この記事が気に入ったら
いいね ! しよう

コメント