cakephp3でデプロイ環境先毎にDB接続先を切り替えたい場合

cakephp3でデプロイ環境先毎にDB接続先を切り替えたい場合

環境毎にWebサーバに記述して再起動しておく
apache の場合

$ vi /etc/httpd/conf/httpd.conf
SetEnv CAKEPHP_ENV app_prod
#SetEnv CAKEPHP_ENV app_stg
#SetEnv CAKEPHP_ENV app_dev

nginxの場合

#fastcgi_param EXTRA_PARAMETER app_prod;
#fastcgi_param EXTRA_PARAMETER app_stg;
fastcgi_param EXTRA_PARAMETER app_dev;

bootstrapファイルを編集する

$ vi config/bootstrap.php
try {
    Configure::config('default', new PhpConfig());
    //Configure::load('app', 'default', false);
    switch (env('CAKEPHP_ENV')) {
        case 'prod':
            Configure::load('env/app_prod', 'default', false);
            break;
        case 'stg':
            Configure::load('env/app_srg', 'default', false);
            break;
        case 'dev':
            Configure::load('env/app_dev', 'default', false);
            break;
        default:
            Configure::load('app', 'default', false); // local
    }
} catch (\Exception $e) {
    exit($e->getMessage() . "\n");
}

設定ファイルをapp.phpからコピーする

$ mkdir config/env
$ cp config/app.php config/env/app_prod.php
$ cp config/app.php config/env/app_stg.php
$ cp config/app.php config/env/app_dev.php

接続先等を適宜編集する

$ vi config/env/app_prod.php
$ vi config/env/app_stg.php
$ vi config/env/app_dev.php

参考
http://easyramble.com/switch-environment-with-cakephp.html
http://easyramble.com/switch-cakephp-env.html
ありがとうございました