全部読み切ってませんが、とても素晴らしい内容で、やっぱりというか当然というか自分がモロだめなパターンに当てはまっていることが発覚したので今後のためにメモ。
基本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"));
}
}
おぉ・・・まさにこんな感じ。サンプルそっくりで笑えてくる。
モデルに置けるあらゆるものは、そうすべきである(少なくとも「モデルかコントローラか」といった場合には。) アプリケーションの核となるビジネスロジックと連携しないものは (セッション管理、リクエスト・レスポンス処理、セキュリティやアクセス制限に関するもの)、 コントローラに置いたままにすべきである。 それ以外のあらゆるものはモデルに放り込め。
なるほど。モデルはスカスカなことが多かったんですが、 実は主役なんですね。勉強になりました。
/ 金額 : ¥ 1,974
1-5
6-10