.env ファイルの値が変更されない!
.envの値を書き換えてるのに、全然反映されない!
と困っていたらキャッシュされるから反映されないとのこと。
しかも開発環境だと起きないみたいだからたちが悪い。
んでどうしたらよいかというと、configを使う用にすればよい。
configの使い方
.env 内にある TIMEOUT_SECという値を読み取りたい場合、
$timeout_sec = env('TIMEOUT_SEC');
で取得できるのだけど、.envファイルを書き換えても値が反映されないことが起きる。
これはキャッシュされているせい。
キャッシュをクリアすれば良いのだけど面倒なので、configを経由して取得するように変更する。
configディレクトリ配下に適当にphpファイルを作り、(ここではconfig/hoge.phpとする)
<?php
return [
'timeout_sec' => env('TIMEOUT_SEC', 15),
];
これで、プログラムから、
$timeout_sec = config('hoge.timeout_sec');
という感じで読み取れる。hoge は config/hoge.php の hoge であり、ファイル名がそのまま使われる。
このようにconfigをかますとキャッシュされず、変更が即時反映される。
が、パフォーマンス的にどうなのかは知らん。微々たるもんだと思うが。
以上!