php artisan config:cacheを叩いてハマった
.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の違いを明確に分かっていないとハマります。ご安全に!
Author And Source
この問題について(php artisan config:cacheを叩いてハマった), 我々は、より多くの情報をここで見つけました https://qiita.com/tatsuya_1995/items/c53f2fcb468b9cd27eb9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .