Laravelの設定ファイル(config/*.php)のキャッシュ関係の仕様を簡単に

php artisan config:cacheでデフォルトではbootstrap/cache/config.phpconfig/*.phpから読み込まれた設定のキャッシュが生成される。

config:cacheは最初にconfig:clearするため、再実行した場合はキャッシュが再生成される。

config:clearは単純にbootstrap/cache/config.phpを削除する。

config:cacheを実行していない環境で勝手に設定がキャッシュされ、.envの変更が反映されなくなることは基本的にない。

例外として、php artisan optimizeが内部でconfig:cacheも叩いているので、これを使ってしまった可能性が一つ。

もう一つ、php artisan serveで動かしている場合、バグにより設定のキャッシュとは無関係に.envの変更が反映されない。参考

ということでまとめると、

  • 本番環境・ステージング環境等ではconfig:cacheをデプロイごとに自動で実行する。
  • 開発環境で間違ってconfig:cacheしてしまった場合はconfig:clearするだけでいい。
  • php artisan serveで開発してる場合はあきらめて.envの更新ごとにサーバを再起動する。
    • あるいは、artisanを通さず普通にphp -S 127.0.0.1:8000 server.phpする。

これだけ覚えておけばよさそう。それでも引っかかる場合は、別のキャッシュが効いているのかも。