MongoDBをCakePHP2で使う。

MongoDBのようなNonSQLに向いたサイトを作成を検討中。現在CakePHPは2に移行しつつあるので、2からMongoDBに接続できるかのテストから始める。結果は、笑ってしまうくらい簡単に接続できた。MongoDBに対応したCakePHPのデータソース(仮にCake Mongoと呼んでおく)の開発者に感謝する。

CakePHPとMongoDBがインストールされたものとする。

PHPとMongoDBと接続するドライバーが必要である。WindowsのXAMPP上のテストなので、PeclからのインストールではなくMonboDBのサイトからWindows用のドライバのバイナリファイルを持ってくる。Apacheのバージョンに合わせてダウンロードする。.iniの設定をして、phpinfo()で確認する。

以上は、検索すると出てくるので、詳細は各ページを参照する。

以下は、Cake Mongo開発者のプレゼン資料からの抜粋である。

データソースをGitから取得する。WindowsなのでGit Bashを使う。以下のコマンドを実行する。

[bash gutter=”false”]

> cd app/Plugin
> git clone git://github.com/ichikaway/cakephp-mongodb.git Mongodb
> cd Mongodb
> git checkout -b cake2.0 origin/cake2.0

[/bash]

これで、CakePHP2用の CakeMongoがダウンロードできる。

CakePHPのファイルの修正は以下の通り。まずはデータベースの接続の設定

/app/Config/database.php

[php]

class DATABASE_CONFIG {
public $default= array(
‘datasource’=>’Mongodb.MongodbSource’,
‘host’ => ‘localhost’,
‘database’=> ‘blog’,
‘port’=>27017,
}

[/php]

次に/app/Config/bootstrap.phpでCakeMongoのプラグインを読み込ませる。

[php]

CakePlugin::load(‘Mongodb’);

[/php]

後は、CakeMongoに付いてくるサンプルを動かしてみる。

データベースの設定をしなくていいので、簡単に動くことが確認できた。あっさり動くことに、逆に驚き。