5丁目通信(仮称)

とある5丁目で活動する還暦を過ぎたWebプログラマーの覚え書きです。それとかかってくる迷惑電話や、家業のアパート経営について。

MongoDBをCakePHP2で使う話し


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

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

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

https://www.php.net/manual/ja/mongo.installation.php#mongo.installation.windows

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

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

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

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

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

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

/app/Config/database.php

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

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

CakePlugin::load('Mongodb');

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

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