2008年

CakePHP コントローラに処理を書かずにモデルにメソッドを追加しよう! このエントリーを含むはてなブックマーク

CakePHP Add comments

CakePHP だけではなくフレームワーク全般に当てはまることだと思います。
Fat models and how they change how you use the Model class – cakebaker

私もフレームワークを使い始めた当初はそうだったのですが、モデルに最初からあるメソッドだけを使用してコントローラでなんでもかんでもやってしまっていました。
そうではなく、もっとモデルにオリジナルのメソッドを追加して、コントローラではそれを使用した方がコントローラもすっきりして後から見たときにも何をしているか分かりやすいと思います。

例えばブログの最新エントリ10を find する場合コントローラに
$this->Post->findAll(array('Post.is_published' => true), null, array('Post.published DESC'), 10);
と書くよりも
Postモデル

function findMostRecent($limit = 10) {
    return $this->findAll(array('Post.is_published' => true), null, array('Post.published DESC'), $limit);
}

コントローラ
$this->Post->findMostRecent();
と書いた方がコメントなどなくても何をしているのかが分かりやすくなります。

関連する投稿

One Response to “CakePHP コントローラに処理を書かずにモデルにメソッドを追加しよう!”

  1. CakePHP でモデル・ビュー・コントローラー間で値を渡す基本的な方法 | ウェブル Says:

    [...] 実際にはモデルからコントローラーに値を渡すというよりは、コントローラーでモデルから値を取り出すと言う感じですね。CakePHP コントローラに処理を書かずにモデルにメソッドを追加しよう! | Su… がとても分かりやすいのでそのまま引用します。 [...]

Leave a Reply

Additional comments powered by BackType

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS ログイン