2009年05月01日 02:54

MVCとその設計思想

| TB http://www.kantenna.com/cgi-bin/mt/mt-tb.cgi/459

全部読み切ってませんが、とても素晴らしい内容で、やっぱりというか当然というか自分がモロだめなパターンに当てはまっていることが発覚したので今後のためにメモ。

基本CakePHPの話ですがそれ以外のフレームワークに も共通する話題だと思います。MVCフレームワークを初めて利用する人は 絶対に読んでおいた方がよいと思います。

テーブルとのやりとりにモデルの機能はとても重宝するが、モデルをそのためだけに使っているのであれば、あなたは損をしていることになる。 ちゃんとした MVCではモデルこそが第一級の存在であり、そのように扱われる。コントローラはデータをモデルから取得してビューへと送り出すだけのシンプルな糊として振るまい、アプリケーション内で最も魅力のない部分となる。

モデルをテーブルとのやり取りだけに使ってたのは僕です。


class PostsController extends AppController {
 
  public function index() {
    $posts = $this->Post->find("all", array(
      "limit" => 10, "order" => "Post.created DESC"
    ));
    $this->set(compact("posts"));
  }
 
  public function feed() {
    $posts = $this->Post->find("all", array(
      "limit" => 50, "order" => "Post.created DESC"
    ));
    $this->set(compact("posts"));
  }
}

おぉ・・・まさにこんな感じ。サンプルそっくりで笑えてくる。

モデルに置けるあらゆるものは、そうすべきである(少なくとも「モデルかコントローラか」といった場合には。) アプリケーションの核となるビジネスロジックと連携しないものは (セッション管理、リクエスト・レスポンス処理、セキュリティやアクセス制限に関するもの)、 コントローラに置いたままにすべきである。 それ以外のあらゆるものはモデルに放り込め。

なるほど。モデルはスカスカなことが多かったんですが、 実は主役なんですね。勉強になりました。

Fast CakePHP (LLフレームワークBOOKS)

著者 : 秋田 真宏 / 金額 : ¥ 1,974

MVCとその設計思想タグ:

トラックバック

  • http://www.kantenna.com/cgi-bin/mt/mt-tb.cgi/459
コメント (0)
コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)





この情報を登録しますか?


先月アクセスが多かったページ