RのWeb制作

Webサービス制作のための技術情報を。データ分析(Python、機械学習コンペ他)や自作野球ゲームMeisyoのこと中心。

Web制作

cakePHP2.*で簡単にデータベース(database.php)設定を切り替える方法

投稿日:

cakePHP2.0で実験しました。
内容はhttp://blog.imho.jp/2014/05/cakephp-2xdatabasephp.htmlを改良しました。ありがとうございます。といってもPHP5.3以降で非推奨となった関数eregをpreg_matchに変えるだけですが。

class DATABASE_CONFIG {

public $default = null;

public $dev = array(
‘datasource’ => ‘Database/Mysql’,
‘host’ => ‘localhost’,
‘login’ => ‘root’,
‘password’ => ”,
‘database’ => ‘m4m’,
‘encoding’ => ‘utf8’,
‘persistent’ => false,
‘prefix’ => ”,
);

public $ebs3 = array(
‘datasource’ => ‘Database/Mysql’,
‘host’ => ‘localhost’,
‘login’ => ‘root’,
‘password’ => ”,
‘database’ => ‘eb3’,
‘encoding’ => ‘utf8’,
‘persistent’ => false,
‘prefix’ => ”,
);

public $m4m = array(
‘datasource’ => ‘Database/Mysql’,
‘host’ => ‘localhost’,
‘login’ => ‘root’,
‘password’ => ”,
‘database’ => ‘m4m’,
‘encoding’ => ‘utf8’,
‘persistent’ => false,
‘prefix’ => ”,
);

public function __construct(){
App::uses(‘Folder’, ‘Utility’);

//if file named USE_DATABASE_CONFIG_name exists, use DATABASE_CONFIG.name as default config
//if multiple USE_DATABASE_CONFIG_* files found, use the first one.
$dir_path = ROOT . DS . APP_DIR . DS . ‘Config’ . DS;
$dir = new Folder($dir_path);
$f = $dir->find(‘USE_DATABASE_CONFIG_.*’, true);
if (count($f)<=0) { //using default(dev) setting if USE_DATABASE_CONFIG_* is not found. $this->default = $this->dev;
return;
} else {
//using default(dev) setting if USE_DATABASE_CONFIG_* is not found.
//fetch config name
preg_match(‘/USE_DATABASE_CONFIG_(.*)/’, $f[0], $ret);
$config_name = $ret[1];
if (isset($this->{$config_name})) {
$this->default = $this->{$config_name};
} else {
//use default(dev) configuration if accoumpanied configuration is not found
$this->default = $this->dev;
}
return;
}
}
}

・使い方(元記事ではイマイチよくわからなかったので補足)
database.phpに__construct()等を追加して、
「app/Config」ディレクトリに「USE_DATABASE_CONFIG_m4m」(拡張子なし)を入れておくと、$m4mに接続。
つまり「USE_DATABASE_CONFIG_ebs3」(拡張子なし)を入れておくと、$ebs3に接続。
「USE_DATABASE_CONFIG_~」を入れてないと$devに接続する具合です。

「いちいち設定しなおすのは面倒だ」という方におすすめです~。
ファイル名をリネームするだけで簡単にデータベース設定を切り替えることができますね!

-Web制作

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

[Meisyo]野手起用法設定の導入

野手起用法設定の導入を行いました。 この変更で、 「勝ってる時だけ守備固めを出したい」 「負けてるから投手に代打してチャンスを作りたい」 という要望にお答えしました。 発想は野手起用法設定の導入検討の …

[Meisyo]ビッグデータから学ぶ試合の基礎設計2

名将と呼ばれた者達、めちゃくちゃソースコードが長い(この記事) ここでは、「どのパラメータが打率等にどれくらい関係するのか」を理解することで強いチームを作る指針を記載しておきます。 というわけで27- …

[Meisyo]練習難易度の不均衡是正への分析的アプローチ

「練習ごとに難易度が違いすぎるんですけど!!」という不満は把握しています。 ただ、これまでそこには触れてきませんでした。 なぜなら・・・まだデータ取れてないし、分析できないでしょ(言い訳) ・・・怠慢 …

no image

ユーザーのフォントを統一できる、Google Fontsの紹介

Web制作で困ることが多いのは「ユーザー全員が使えるフォントがない」ことでしょう。 ユーザーのパソコンに入っているフォントによって見え方が異なるためです。 つまり「見え方が統一できない」ことが多いです …

[Meisyo]大型アップデート予定のお知らせ

名将と呼ばれた者達よりお知らせです。 下記アップデートを予定しています。 1・サーバーの移転(高速化) 今まで練習試合等で非常に時間がかかっていた問題が解消されます。 2・チーム名等の仕様変更 チーム …