コンテンツにスキップ

Top

.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をかますとキャッシュされず、変更が即時反映される。
が、パフォーマンス的にどうなのかは知らん。微々たるもんだと思うが。

以上!