書き置き。

ほぼ勉強の記録みたいなもんです。

Spika-Server の処理を追ってみる その後

etc/app.php でurlに対するコントローラーを登録
src/Spika/UserController.php の各メソッドでその下の階層のpathに対する挙動が設定されている
他のコントローラーではメソッド分けせずに、connect() にベタ書きしているものもあり、このあたりは統一されていないようだ。

src/Spika/Db/CouchDb.phpCouchDBへのアクセスはまとめられている。

CouchDB に対してHTTPでアクセスしているところまでは理解したが、
例えばメールアドレスからユーザーを探す箇所が、どうしてこういうパスになるのか、理解できなかった。CouchDBを使うときの決まり文句なのか、Spikaの独自ルールなのか?

$this->couchDBURL . "/_design/app/_view/find_user_by_email?key=" . $emailQuery

デバッグ用にDebugController を新設して、自分でCouchDBとのデータやりとりも見よう見まねで書いてみた。

$controllers->get('/user', function (Request $request) use ($app, $self) {

        $output = "デバッグ画面";
        $output .= "<pre>";

        $email = "<メールアドレス>";

        $Result = $app['spikadb']->findUserByEmail($email);
        $output .= print_r($Result, true);

        $output .= "</pre>";
        return $output;
});

最後、return した文字列が画面に表示される。デバッグ目的だったのであればこれで十分。
ちゃんとHTMLで画面を作りたい場合は、twigを使うこともできる。

Futon というツールを使うとブラウザで中のツールが見られるのだけど、これも使うのが今回が初めて。

http://localhost:5984/_utils/

SpikaServerからアクセスすると自分のユーザー情報は取得できたものの、Futon 画面上からそのデータにたどり着くことができなかった。 CouchDBのデータ構造上こうなるんだろうな、と予想ついたけど、PhpMyAdminのように簡単にはいかなかった。 ここはまだまだ勉強不足。

Spika作者のブログを見ると、DB接続部分は大幅な改修が行われているようだ。MySQLで使えるようになるようなので今後に期待したい。

SPIKA近況 - ヨーロッパで働く社長のブログ

本業が忙しいようで、Spika-Server は最後の更新が22日前、MySQL(PDOになるのかな?)関係のコミットはまだ上がっていないようだ。

MySQLが使えるようになったら、本気出す!