ちゃんぽん文化圏

時々書いているけど、安住紳一郎の日曜天国というラジオ番組があって時々リアルタイムで聞いたり、ポッドキャストを聞いたりしている。ポッドキャストは、以下参照。
(Yahoo!ポッドキャスト - 安住紳一郎の日曜天国)

その中で去年の3月16日、「ちゃんぽんはなぜ群れるのか」という回があったのだけど、その話を思わずカッとなって整理してしまった。

ちゃんぽん文化圏を地図に整理した図
ちゃんぽん文化圏

うん、意外ときれいに整理できたな。安住アナウンサーの整理能力がすごいな。と感心。
ポイントは、

  • 日本3大ちゃんぽん
  • ちゃんぽんとラーメンの違い
    • ラーメンはあらかじめ麺を湯で茹でる
    • ちゃんぽんは一つの鍋で作る。スープで麺を茹でる
  • 長崎から九州各地の温泉地との関係は大きい(と思われる)

Ethna_AppSeaechObjectを使ってみた

EthnaのAppObjectを使ってデータベースに検索条件を設定する場合、条件一致の場合は次の様にすればよい。
例えばSAMPLEというテーブルがあって、次の様な形だった場合、

NO MAILADRS USER URL MODE
1 foo@foo.com hideack ttp://d.hatena.ne.jp/hideack/ 1
2 bar@bar.com taro ttp://d.hatena.ne.jp/sample1/ 0
3 hoge@hoge.com hoge ttp://d.hatena.ne.jp/sample2/ 1

次の様なSQLを発行するのと等価な処理は、

SELECT MAILADRS,USER FROM SAMPLE WHERE MODE=1;

次の様になる。

<?php
$sample = $this->backend->getObject("SAMPLE");
$prop_ary = $sample->searchProp(
array("MAILADRS", "USER"),      // 取得する項目名
array("MODE" => "1"),           // 一致条件(検索条件, SQLのWHEREの内容)
null,
null,
null
);
?>

こうすると、$prop_ary[0]には条件一致した件数が格納され、$prop_ary[1]には取得された結果が格納される。
で、例えば単純な条件一致ではない場合、

SELECT MAILADRS, USER FROM SAMPLE WHERE NO>=2 AND NO<5

の様な条件を設定したい場合は、AppSearchObjectを使うと検索条件を設定できる。

<?php
$search = new Ethna_AppSearchObject("2", OBJECT_CONDITION_GE);
$search->addObject(
"SAMPLE",
new Ethna_AppSearchObject("5", OBJECT_CONDITION_LT),
OBJECT_CONDITION_AND
);
$sample = $this->backend->getObject("SAMPLE");
$prop_ary = $sample->searchProp(
array("MAILADRS", "USER"),  // 取得する項目名
$search,                    // 複数条件(AppSearchObjectのインスタンス)
null,
null,
null
);
?>

OBJECT_CONDITION_GE etc... は検索条件を設定するための定数で定義の一覧はリファレンスに記載されている。

今までいくつか条件が重なる様な検索条件を発行するときは、AppObjectではなくて直接操作していたので試しに使ってみたのだけど、こういう使い方が一般的なのだろうか?
少し複雑な気もしなくもない...。