5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

php artisan config:cacheを叩いてハマった

Posted at

.envの設定が反映されなかったのでキャッシュを消そうとした際に、
php artisan config:cacheを叩いてエラーにハマりました。

本来叩きたかったコマンドは、

php artisan cache:clear

になります。これで全てのアプリケーションキャッシュが削除されます。

今回勘違いして叩いたのは

php artisan config:cache

configの読み込みを早くするためのキャッシュを作成するコマンドで
実行するとbootstrap/cache/config.php配下にconfig.phpが生成されます。
config.phpにはconfig配下の各ファイルから読み込まれたキャッシュが配列で作られます。

このコマンドを実行するとキャッシュを一度クリアにして、
再度キャッシュするという動作を行い、もう.envファイルを読み込まなくなるという罠があります。

ただ、config:cacheを使うことによって設定ファイルをまとめることができるのでアプリをスピードアップできるメリットがあります。そうなってもいいように.envファイルの値をそのまま使うのではなく
configファイルとenvファイルに分けて

// configファイル
`api_key` => env('API_KEY')
// envファイル
API_KEY=hogefugapiyo....

というように使うことを推奨されているようです。
こうすれば.envが読み込まれなくてもconfigファイルから情報が取れるんですね。

公式もこのように言っています↓

開発期間中にconfig:cacheコマンドを実行する場合は、設定ファイルの中で必ずenv関数だけを使用してください。設定ファイルがキャッシュされると、.envファイルはロードされなくなり、env関数の呼び出しはすべてnullを返します。
https://readouble.com/laravel/8.x/ja/helpers.html?header=env()

cache:clearとconfig:cacheの違いを明確に分かっていないとハマります。ご安全に!

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?