開発環境と本番環境でデータベースの設定を変えたいことが多々あります。
- 開発: dev.exapmle.com
- 本番: release.example.com
とドメインを分けていると仮定します。私は、
app/config/database.php
に以下のような記述をしています。
<?php
class DATABASE_CONFIG {
var $default;
var $test;
function __construct() {
switch ($_SERVER['SERVER_NAME']) {
case 'dev.example.com':
$this->default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => '127.0.0.1',
'port' => 3306,
'login' => 'hoge',
'password' => '',
'database' => 'hoge',
'prefix' => 'hoge_',
'encoding' => 'utf8'
);
break;
case 'release.example.com':
$this->default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => '127.0.0.1',
'port' => 3306,
'login' => 'root',
'password' => '',
'database' => 'hoge',
'prefix' => 'hoge_',
'encoding' => 'utf8'
);
$this->test = array(
'driver' => 'mysql',
'persistent' => false,
'host' => '127.0.0.1',
'port' => 3306,
'login' => 'root',
'password' => '',
'database' => 'hoge',
'prefix' => 'hoge_test_',
'encoding' => 'utf8'
);
break;
}
}
}
他には、複数の設定を定義しておいてAppModelで振り分けるとかも良いかも知れませんね。個人的には
app/config/database.php
だけを確認すれば良い実装の方が好きですけど。