CakePHPをAppFogで使うためのdatabase.php設定

3連休とかクリスマスとかですが、いかがお過ごしでしょうか。
忘年会以外特に予定もないので、huluでTopGear見て過ごしています(´-ω-`) 

最近、CakePHPを触っています。
自分でなんとなく作ったモノをAppFogに上げて遊ぼうと思った所、環境設定経由じゃないとデータベース設定が取れないのですな・・・。

何とか調べまくって(賛否両論ありそうですが)database.phpに設定を直書きする事で解決できたので、メモとして残しておきます。

<?php
class DATABASE_CONFIG {

	public $default = array();

	function __construct() {
        $services = getenv("VCAP_SERVICES");
		$services_json = json_decode($services,true);
		$mysql_config = $services_json["mysql-5.1"][0]["credentials"];
		
		$this->default = array(
			'datasource' => 'Database/Mysql',
			'persistent' => false,
			'host' => $mysql_config["hostname"],
			'login' => $mysql_config["user"],
 			'password' => $mysql_config["password"],
			'database' => $mysql_config["name"],
			'port' => $mysql_config["port"],
			'prefix' => '',
			'encoding' => 'utf8',
		);
    }

}

こんな感じで、呼び出されたら取ってきて設定します。簡単ですね。
他のフレームワークみたいにreturnで返すような感じだとまた取りやすいのですけれど・・・。

多分mysql-5.1のあたりを各種書き換えれば他のデータベースにも対応できるはずです。 

参考

php – How to config cakephp 2.2 database connection with appfog service – Stack Overflow
CloudSpring | Deploying CakePHP apps on AppFog the right way

One thought on “CakePHPをAppFogで使うためのdatabase.php設定

  1. Pingback: CakePHP 在 Appfog 中使用 mysql service « echo "Hello world!"

コメントを残す