etc/app.php
でurlに対するコントローラーを登録
src/Spika/UserController.php
の各メソッドでその下の階層のpathに対する挙動が設定されている
他のコントローラーではメソッド分けせずに、connect() にベタ書きしているものもあり、このあたりは統一されていないようだ。
src/Spika/Db/CouchDb.php
にCouchDBへのアクセスはまとめられている。
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 というツールを使うとブラウザで中のツールが見られるのだけど、これも使うのが今回が初めて。
SpikaServerからアクセスすると自分のユーザー情報は取得できたものの、Futon 画面上からそのデータにたどり着くことができなかった。 CouchDBのデータ構造上こうなるんだろうな、と予想ついたけど、PhpMyAdminのように簡単にはいかなかった。 ここはまだまだ勉強不足。
Spika作者のブログを見ると、DB接続部分は大幅な改修が行われているようだ。MySQLで使えるようになるようなので今後に期待したい。
本業が忙しいようで、Spika-Server は最後の更新が22日前、MySQL(PDOになるのかな?)関係のコミットはまだ上がっていないようだ。
MySQLが使えるようになったら、本気出す!