GAE/Jでちいたんを動かす!その2

昨日は時間がなくて紹介だけしたGAE上で動くちいたんを公開。

GAE/Jでちいたんを動かす!その3に最新版がありますので、そちらをご利用ください。

BigTableアクセスクラス(ソース入り)
http://pluswing.net/down/gaephp-1.0.0.jar
GAE/J対応 ちいたん
http://pluswing.net/down/gae_cheetan_20090512.zip
GAE/J対応 ちいたん サンプルブログ
http://pluswing.net/down/gae_cheetan_blog_20090512.zip


実際に動かすには、以下の手順で。

  • QuercusをGAE/Jで動かす環境作り

PHPをGoogle App Engineで動かす用のQuercusを公開した
を参考に、GAE/J上でPHPが動くようにする。

  • gaephp-1.0.0.jarを配置

WEB-INF/lib配下にgaephp-1.0.0.jarを配置する。

  • gae_cheetan_blogをwar以下に配置

解凍したgae_cheetan_blogをwar以下に配置する。

これでOK。


※デプロイする場合、appengine-web.xmlを以下に書き換えないとhtmlファイルがアップされないので注意。

<resource-files>
<include path="/**.php" />
<include path="/**.html" />
</resource-files>


設定などは基本的にちいたんと同じです。
config.phpに通常はconfig_database()関数を定義しますが、
これは必要ありません。↓を参照のこと。
http://php.cheetan.net/manual/tutorial.php
サンプルブログの記述を参考にしてください。


モデルクラスへのアクセスは通常のちいたんと同じく、$c->blog_data->...でアクセスできますが
データのCRUDについてはちいたんとはまったくといっていいほど違うので注意が必要です。

// CREATE //////////////
$c->blog_data->insert($hash);
// or
$blog = $c->blog_data->create($hash);
$blog->save();

// UPDATE //////////////
$c->blog_data->updateByKey($key, $hash);
// or
$blog = $c->blog_data->find()->key($key);
$blog->update($hash);


// DELETE //////////////
$c->blog_data->deleteByKey($key, $hash);
// or
$blog = $c->blog_data->find()->key($key);
$blog->delete();


// READ //////////////
// keyによる検索
$blog = $c->blog_data->find()->key($key);

// 一般的な1件検索
$blog = $c->blog_data->find()->eq("title", "test")->getSingleResult();

// 一般的な複数件検索
$blog = $c->blog_data->find()->eq("title", "test")->getResultList();


// フィールドの取得 (CRUDメソッドの戻り値は連想配列ではないので注意。)
// キーの取得
$blog->key();
// フィールドアクセス
$blog->title;
$blog->body;

  • 各種条件の設定メソッド一覧

// = (ほか同じ要領で、ge, gt, lt, leがある。)
eq($field, $value);

// between
between($field, $beginValue, $endValue);

// ソート
asc($fields);
desc($fields);
// asc("a", "b")->desc("c")->asc("d")は、"a asc, b asc, c desc, a asc"と同義

// limit、offset
limit($count);
offset($count);