3

env('APP_ENV'),config('app.env')またはApp::environment()のアプリケーション環境を使用する場合の違いは何ですか?アプリケーション環境を取得するためにenv( 'APP_ENV')、config( 'app.env')、またはApp :: environment()を使用する違いは何ですか?

env('APP_ENV')$_ENVになり、config('app.env')はコンフィギュレーションを読み込み、App::environment()はすべての抽象化であることがわかりました。そして、私の意見では、この利点もあります。 抽象的。こうしたパフォーマンス比較のレベルやセキュリティなどの他の違いは、存在する場合、私は知らない

検討する

+2

むしろ ')が、経験則として、あなたが(設定'に頼る必要がありますあなたの設定値をキャッシュしたい場合は 'env()'を直接実行してください。 –

答えて

0

一つのことは、おそらくあなたの現在の環境を検証するために、app()->environment()に文字列を渡すの利便性因子です。

// or App:: whichever you prefer. 
if (app()->environment('local', 'staging')) { 
    logger("We are not live yet!"); 
    Seeder::seedThemAll(); 
} else { 
    logger("We are LIVE!"); 
} 
0

あなたは2つの等しく良いオプション

if (\App::environment('production')) {...} 

または

if (app()->environment('production')) {...} 

アプリ()は - >環境は()実際のドキュメントhereに見て、Bugsnagで使用されているが、それは

語ります

デフォルトでは、

4

私はそれを感じました。設定ファイルをキャッシュすると、env()は正しく動作しないことがあります。だから私が知ったこと:

  1. Laravelは、設定ファイル内でenv()を使うことをお勧めします。コードでenv()の代わりにconfig()ヘルパーを使用してください。たとえば、コード内でconfig( 'APP_ENV')を呼び出すことができます。
  2. php artisan config:cacheを使用すると、すべての設定文字列がフレームワークによってキャッシュされ、php artisan config:cacheコマンドを再度実行するまで.envファイルに対する変更は有効になりません。ここから

https://laracasts.com/discuss/channels/general-discussion/env-not-reading-variables-sometimes

UPDATE:キャッシュ:

ENV()の呼び出しは、限り、あなたはPHPの職人の設定を使用していないとして働いています。開発中はしばしば動作しますが、生産では失敗するため、非常に危険です。ここから

https://laravel.com/docs/5.2/upgrade#upgrade-5.2.0(値が同じ場所から来ているよう:あなた*の.env *ファイル)は_real_の違いはありません

+0

ありがとう!また、https://laravel.com/docs/5.4/configuration#configuration-cachingの公式ドキュメントでも参照されています。 –

関連する問題