Remoraを眺めてみた2

Remoraを眺めてみた感想メモその2。

實松アウトプット: Remoraを眺めてみた1
http://sane.justblog.jp/blog/2008/02/remora1-e01b.html

Revision 10695: /addons/trunk/site
http://svn.mozilla.org/addons/trunk/site/

全部要る時だけbindFully

$hasMany_full,$hasAndBelongsToMany_full,$belongsTo_full
を書いておいてフル必要なときにbindFully()でバインドするっていうのはいいね。

bindModelかSQLか

条件つけたり取り出す順番だったりってのは前に書いたようにbindModelで出来る。
でもRemoraはモデルに直にSQLで書いちゃってる。まあわかりにくいもんなあ。SQLで書いちゃったほうがミスも少ないし速い(速い人は速いしそういう人が多いはず)。ただ私の場合SQL書くにもドキュメント見ながらだし、arrayで書くのとあんまり変わらない。bindModelならデータベースの差異を吸収できる(はず)っていうのはあるけど。ひょっとすると速度的な問題もあるのかな。remoraはどこみてもMySQL専で書かれているし。

bindModelの上手な使い方

addons_controllerのversionsメソッド一部抜粋

$bindusers = array('hasAndBelongsToMany' => array('User' => $this->Addon->hasAndBelongsToMany['User']));
$this->Addon->unbindFully();
$this->Addon->bindModel($bindusers);
$addon = $this->Addon->findById($id, null, null, null, null, 0);

なるほどなるほどー。一番勉強になったのはここ。このbindModelの書き方はかっこいい。そうかこれならすっきりだ。

なんだかんだで結構fatなコントローラ

基本的にSQLのクエリのべた書きが必要なもの以外はコントローラで済ませちゃってる。いくつかコントローラにSQLべた書きしているところもある。かなり効率的に分かりやすく書かれているけど、なんだかんだで結構fatなコントローラだ。getActiveUserByMail($mail)とか作ってちょっとずつ条件の違うメソッドでモデルが埋め尽くされるのとどっちがましなんだろう。これは一見thinに見えるけど結局いちいちモデル確認しなきゃいけないんだよね。あ、でも全部丸ごとモデルに押し込んじゃうとアソシエーションを設定するためにはあらかじめアソシエーションが無いと直には読めないのか。でもやっぱりコントローラ経由すれば読めるのか。やっぱりappimportしちゃえばいいのか。どっちがマシかはまだよくわからない。

まだ続くかも。そのうち。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中