artisanコマンド実行時にphp artisan env --env=dev
を付けたらdev
として実行される。
envの切り替えはこういう時に使うもの。
複数の.envファイルは機能としては残ってるけど滅多に使わないので忘れていい。
開発環境用の.env。
デフォルトのAPP_ENV=local
のまま使う。
.envファイルはgitリポジトリに含めない。
テスト時にはAPP_ENV=testing
に自動的に切り替わるので何もしなくていい。
テスト時の環境変数はphpunit.xmlで上書き。
本番用もファイルは.envのまま。開発用とは全く別のファイル。本番サーバー上でファイルを用意するか環境変数かはどう動かしてるか次第。
APP_ENV=production
他本番用に設定。
開発時に複数の.env使うとしたらDuskくらい。
APP_ENV
はlocal
testing
production
しか使うことないので勝手にdev
とか作らない。
ステージングでは?production
でいい。
ステージングでも別の.envファイルなのでproduction
で動かしても本番の設定では動かない。
「複数の.env.*を用意して環境ごとに切り替える」はLaravel以外のフレームワーク使ってきた人がLaravel使い出した時によくやってる間違い。
Laravelでは「環境ごとに別の.envファイルを用意する」