Laravel envで特定の環境で運用されていることを表示する

@env(['staging’, 'production’])
// アプリケーションは"staging"か"production"環境で動いている
@endenv

こんにちは。今回は特定の環境でのみビューに情報を表示する方法を解説します。envを利用して簡単に行うことができるのでお勧めです。

やりたいこと

プロダクトを作成するときには製品が動作する環境だけではなく、開発用、テスト用と複数の環境を作成することが殆どだと思います。このとき開発用、テスト用の環境ではデバッグ用の機能を動かしたいのですが、本番環境では隠しておきたい機能があったりします。今回は特定の環境でのみ有効になる機能を作成していきます。

手順

.envを編集する

現在の環境情報は.envのAPP_ENVに設定します。値は任意のものを設定可能です。プロジェクトに合わせて値を定義しましょう。よくある名前だと以下のようなものがあります。

  • production 製品環境
  • staging 検証環境
  • local, dev 開発環境

今回はlocalに設定します。

APP_ENV=local

bladeで現在の環境を判断する

bladeで環境情報を取得するには@envを使用します。local, stagingでのみ動作するコードは以下のように記述します。

    @env(['local', 'staging'])
        this is local or staging environment
    @endenv

まとめ

現在の環境を判断する方法はこれがlaravel公式のやり方になります。このやり方で行うとコントローラなどでも環境判断を行うことができます。別の方法で実装していた方はこのやり方をお勧めします。

Laravel

Posted by kobainmac