MENU

[Laravel8][view]blade 開発環境ごとの文言の出しわけ方法

Laravel8講座
目次

はじめに

Web開発をしていてテスト環境触っていたはずが本番環境を触ってしくった。
またその逆で本番環境を触っていたはずが、テスト環境を触っていてしくった。
みたいなことはありませんか?

テスト環境と本番環境を間違えたことにより、
インシデント等重大なミスを発生させてしまった経験がある人も少なからずいるでしょう。

そこでブラウザでアクセスした際に、
どの環境にアクセスしているか確認できるようにする方法をご紹介します。

開発、テスト、本番環境の環境の違いはそれぞれシステムによって異なります。
もっと厳密に出来る、厳密にしたほうがいいというご意見はあると思いますが、
まずはLaravel上で簡単に出来る内容でご紹介したいと思います。

環境ごとによる表示の出しわけ方法

では、具体的な変更方法について書いていきます。

大まかな流れは、
まずは設定ファイルで環境を変更し、
次にview側で環境ごとに変更する内容を書いていきます。

設定ファイル変更

envの中の環境変数を使います。

envのAPP_ENVを環境ごとに設定値を変える

例 開発環境 APP_ENV=local
  STG環境 APP_ENV=staging
本番環境 APP_ENV=production 

view側でAPP_ENVの設定値を元に表示変更

おすすめの出しわけ方法

views/xxxx.blade.phpを編集

{{--enddev--}}
@env('local')
    // アプリケーションは"local"環境で動いている
@endenv
@env('staging')
    // アプリケーションは"staging"環境で動いている
@endenv
@env('production')
    // アプリケーションは"production"環境で動いている
@endenv

こんな感じでいけます!

ユーザーに公開しているサービスは本番環境では何も出さないのが良いかと思うので、
何も出てなければ本番環境というふうに切り分けしてもらえれば良いかと思います。

やらない方が良い出しわけ方法

他の人も書いてますが、この書き方は似ていますがphp artisan config:cache    
こんな感じでキャッシュを作成したときに値が取れなくなるのでダメです。

今はキャッシュ使ってなくても後々負荷対策でキャッシュ使うこともあるのでやめておきましょう。
テスト環境ではキャッシュ使ってなくて再現しなかったのに、
本番環境だけ再現したとかいう怖いことになります。

↓この書き方(envを直接読む)はNG 

{{-- env() --}}
@if (env('production')) 
     production環境っす
@elseif (env('staging')) 
     staging環境っす
@elseif (env('local'))
     local環境っす
@else
    ERROR! APP_ENVが空か環境名以外の値が入ってる 
@endif


以上です!!

関連ページ

[Laravel8] blade if文を使った表示内容だし分け
[Laravel8] blade if文を使った表示内容だし分け
よかったらシェアしてね!

この記事を書いた人

コメント

コメントする

目次
閉じる