Table of Contents : マニュアル

概要

上手に書かれたCakePHPアプリケーションは、MVC (モデル-ビュー-コントローラ)ソフトウェアデザインパターンにしたがっています。MVCでプログラムすると、アプリケーションは大きく分けて三つに分かれます。モデルはアプリケーションのデータを扱い、ビューはモデルデータの表示方法を扱い、コントローラは、ユーザによるリクエストを受け取って振り分けます。

イメージ

図 1: 基本的なMVCリクエスト

図1は、CakePHPの基本的なMVCのリクエスト例です。説明のために、例えば、リカルドさんが、広告から入ってきたページの“特注ケーキを今すぐ購入!”というリンクをクリックしたとしましょう。

  1. リカルドさんのクリックしたリンクは http://www.example.com/cakes/buy につながっていて、ブラウザはwebサーバにリクエストを送信します。
  2. ディスパッチャ(dispatcher)は、リクエストされたURL(/cakes/buy)をチェックし、リクエストを正しいコントローラに手渡します。
  3. コントローラは、アプリケーション独自のロジックを実行します。例えば、リカルドさんがログインしているかどうかをチェックするなどです。
  4. また、コントローラはモデルを使用して、アプリケーションのデータにアクセスします。たいていの場合、モデルはデータベースのテーブルを表していますが、LDAPエントリ、RSSフィード、システムのファイルにすることも可能です。この例では、コントローラは、モデルを使ってリカルドさんの最新の購入履歴をデータベースから取得します。
  5. コントローラがひとたびデータをマジックのように取り出すと、コントローラはそれをビューに送ります。ビューはこのデータを受け取り、ユーザにどのように見せるかを準備します。CakePHPのビューは、たいていの場合はHTMLフォーマットになりますが、必要に応じて、ビューは簡単に、PDF、XMLフォーマット、JSONオブジェクトなどにすることも可能です。
  6. ビューがコントローラからのデータを使用し、完全にビューを出力すると、そのビューの内容はリカルドさんのブラウザに返信されます。

アプリケーションに対する、ほぼすべてのリクエストがこの基本的なパターンに従います。後で幾つかのCake特有の点について説明しますので、それまでこの点を忘れないようにしてください。