モデル-ビュー-コントローラ (MVC)

Yii はウェブプログラミングで幅広く採用されている、モデル-ビュー-コントローラ (MVC) デザインパターンを実装しています。 MVC はユーザインタフェースの考慮からビジネスロジックを分離することを目的としています。 そうすることによって、開発者は、他方に影響を与えることなく、一方を容易に変更することが出来ます。 MVC においては、モデル (M) は情報 (データ) とビジネスルールを表現し、ビュー (V) はフォームやテキストのようなユーザインタフェースを含み、コントローラ (C) はモデルとビューの通信を管理します。

MVC を実装する他に、Yii は アプリケーション と呼ばれるフロントコントローラも導入しています。 これは、リクエスト処理のための実行コンテキストをカプセル化したものです。 アプリケーションは、ユーザリクエストに関するいくつかの情報を収集して、 さらに処理を進めるために適切なコントローラにリクエストを渡します。

以下の図は Yii アプリケーションの静的な構造を示します。

Yii アプリケーションの静的な構造

Yii アプリケーションの静的な構造

1. 典型的なワークフロー

以下の図は Yii アプリケーションがユーザリクエストを処理する時の典型的なワークフローを示します。

Yii アプリケーションの典型的なワークフロー

Yii アプリケーションの典型的なワークフロー
  1. ユーザが URL http://www.example.com/index.php?r=post/show&id=1 によってリクエストを発行します。 ウェブサーバはブートストラップスクリプト index.php を実行してリクエストを処理します。
  2. ブートストラップスクリプトは アプリケーション インスタンスを生成し、それを実行します。
  3. アプリケーションは詳細なユーザリクエスト情報を request という名前の アプリケーションコンポーネント から得ます。
  4. アプリケーションは、urlManager という名前のアプリケーションコンポーネントの助けによって 要求されている コントローラアクション を決定します。 この例においては、コントローラは post で、PostController クラスを示します。 そして、アクションは show ですが、その実際の意味はコントローラによって決定されます。
  5. アプリケーションはユーザリクエストをさらに処理するために要求されたコントローラのインスタンスを生成します。 コントローラはアクション show がコントローラクラスの actionShow メソッドであると決定します。 そして、アクションに関連付けられたフィルタ (例えばアクセス制御やベンチマーク) を生成して、実行します。 アクションはフィルタによって許可された場合に限り実行されます。
  6. アクションは ID が 1 である Post モデル をデータベースから読み出します。
  7. アクションは Post モデルを用いて show という名前の ビュー を表示します。
  8. ビューは Post モデルの属性(アトリビュート)を読み出して表示します。
  9. ビューはいくつかの ウィジェット を実行します。
  10. ビューが描画した結果は レイアウト に埋め込まれます。
  11. アクションはビューの描画を完了させ、結果をユーザに表示します。
$Id$

Be the first person to leave a comment

Please to leave your comment.