スポンサーリンク

[CakePHP3.8].envファイルで設定する

CakePHP

CakePHP3系で設定ファイルはconfig/app.phpで行いますが、config/.envファイルに設定を持たせて行う方法もあるようです。

CakePHP 3.8 (3系ならたぶん共通)

環境変数をHTTPDサーバーの方で設定してもいいんですが、config/.env.defaultがあるのでこれをconfig/.envにコピー。
データベース名とか必要ならこのファイルに定義します。
これだけと思いきや、実はデフォルトではこのファイルは使われません。

bootstrap.phpの下記の部分のコメントアウトを外す必要があります。
config/bootstrap.php

if (!env('APP_NAME') && file_exists(CONFIG . '.env')) {
    $dotenv = new \josegonzalez\Dotenv\Loader([CONFIG . '.env']);
    $dotenv->parse()
        ->putenv()
        ->toEnv()
        ->toServer();
}

なお、コメントを外して状態でconfig/.envがなかった場合でもファイル存在チェックが入っているので特に影響はない。
※当然ですがapp.phpで設定する必要はありりますが。