FuelPHPを使った場合に、DBの接続先を環境によって切り替えたい場合の設定方法。
##やりたいこと
環境毎に接続先サーバ、DBの設定を切り替える。
##対処
1.ドメインに応じて、読み込むdb.phpファイルを切り替える。
/fuel/app/bootstrap.phpを編集
bootstrap.php
switch (isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : ''){
case 'production.co.jp':
//本番
Fuel::$env = Fuel::PRODUCTION;
break;
case 'staging.co.jp':
//テスト環境
Fuel::$env = Fuel::STAGING;
break;
default:
//ローカル環境
Fuel::$env = Fuel::DEVELOPMENT;
break;
}
Fuel::PRODUCTIONなどは、読み込むDB設定ファイルの場所に関連する。
2.db.phpの修正
/fuel/app/config/配下に
/development/
/production/
/staging/
のディレクトリがあるので、それぞれを対応する環境用に修正する。
上記、bootstrap.phpにあわせると、
ローカル環境→/development/
テスト環境→/staging/
本番環境→/production/
db.php
return array(
'dbname' => array(
'connection' => array(
'dsn' => 'mysql:host=localhost;dbname=dbname',
'username' => 'username',
'password' => 'password',
),
)
);
コンフィグファイル、各値の取得は以下
\Fuel\Core\Config::load('db');
$pdo_config = \Fuel\Core\Config::get('dbname');
$pdo_username = $pdo_config['connection']['username'];
$pdo_password = $pdo_config['connection']['password'];
以上