KANTENNA.COM

Solarized

HOME > 情報備忘録 > MVCとその設計思想

MVCとその設計思想

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

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

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

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

PHP
  1.  <?php
  2.  class PostsController extends AppController {
  3.  
  4.   public function index() {
  5.   $posts = $this->Post->find("all", array(
  6.   "limit" => 10, "order" => "Post.created DESC"
  7.   ));
  8.   $this->set(compact("posts"));
  9.   }
  10.  
  11.   public function feed() {
  12.   $posts = $this->Post->find("all", array(
  13.   "limit" => 50, "order" => "Post.created DESC"
  14.   ));
  15.   $this->set(compact("posts"));
  16.   }
  17.  }
  18.  ?>

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

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

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

CakePHP ポケットリファレンス (Pocket Reference)
作者:株式会社ブルーオーシャン 岡田 佳典 | 価格:¥ 2,604

トラックバック(1)

2011年6月28日 19:42

オブジェクト指向の間違った理解を正してくれた3つの言葉情報備忘録

オブジェクト指向の間違った理解を正してくれた3つの言葉続きを読む

コメント

コメントする
Name
Email Address
URL
TIME LINE
2012
02.03

[jQuery]closest()とparents()

今から16年前Netscapeブラウザのソースコードの公開方法の会議の中で、初めてオープンソースという言葉が使われた今日、 みなさんいかがお過ごしでしょうか。

今回の投稿はそれとは関係のないjQueryのparents()とclosest()が 似てたので何が違うのか試した時のメモです。

2012
02.01

[jQuery Mobile]初期化イベントメモ

jQuery Mobileは読み込まれてから

mobileinit -> pagebeforecreate -> pagecreate -> pageinit

の順番でイベントが発生する。

2012
02.01

[WordPress]管理画面のフッタのフィルタとアクション。

時間も時間なので、あまり使用頻度の高くない微妙なネタを。

会員制サイトなどで不特定多数の人にログインさせる場合、フッタのバージョン情報は隠しておきたかったり、 こじゃれたメッセージを表示したいときとか使うアクションとフィルタ。

2012
01.28

[WordPress] ブログの情報を取得する方法とノーキャッシュ疑惑

ブログのget_bloginfo()で取れないデータが必要な場合に使うもの。

2012
01.26

[jQuery Mobile]ダイアログ

jQuery Mobileにおけるダイアログの扱いはウインドウではなくページ。 なので通常のページと同様に扱える。ダイアログウインドウを出す。じゃなくダイアログページに遷移する。的な。

2012
01.25

[Ubuntu11.10]Ubuntuのインストール後の設定

インストール完了後の環境構築。PC起動時いちいちBIOSからブートドライブ選んで ブートするのかと思ってたら起動時にOS選択画面が出てくる。

すばらしいですね。

2012
01.24
2012
01.23

MinGW+Mintty+Git

MinGW+Mintty+Gitをやろうとして失敗に終わった。このエントリーには収穫できるものはありません。

2012
01.21

[PHP]共有サーバーユーザーのためのPEARインストール方法

共有サーバーでは自由にPEARのパッケージがインストールできないので、 プロジェクトローカルに設置することになりますが、以前httpベースのものを使ってみたんですけど、 やたら重くて使い物にならなかったので、僕は普通にFTPでアップするようにしてます。

ってことでプロジェクトローカルへのPEARのインストール方法。