Yii はウェブプログラミングで幅広く採用されている、モデル-ビュー-コントローラ (MVC) デザインパターンを実装しています。 MVC はユーザインタフェースの考慮からビジネスロジックを分離することを目的としています。 そうすることによって、開発者は、他方に影響を与えることなく、一方を容易に変更することが出来ます。 MVC においては、モデル (M) は情報 (データ) とビジネスルールを表現し、ビュー (V) はフォームやテキストのようなユーザインタフェースを含み、コントローラ (C) はモデルとビューの通信を管理します。
MVC を実装する他に、Yii は アプリケーション と呼ばれるフロントコントローラも導入しています。
これは、リクエスト処理のための実行コンテキストをカプセル化したものです。
アプリケーションは、ユーザリクエストに関するいくつかの情報を収集して、
さらに処理を進めるために適切なコントローラにリクエストを渡します。
以下の図は Yii アプリケーションの静的な構造を示します。
Yii アプリケーションの静的な構造

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

http://www.example.com/index.php?r=post/show&id=1 によってリクエストを発行します。
ウェブサーバはブートストラップスクリプト index.php を実行してリクエストを処理します。request という名前の アプリケーションコンポーネント から得ます。urlManager という名前のアプリケーションコンポーネントの助けによって
要求されている コントローラ と アクション を決定します。
この例においては、コントローラは post で、PostController クラスを示します。
そして、アクションは show ですが、その実際の意味はコントローラによって決定されます。show がコントローラクラスの actionShow メソッドであると決定します。
そして、アクションに関連付けられたフィルタ (例えばアクセス制御やベンチマーク) を生成して、実行します。
アクションはフィルタによって許可された場合に限り実行されます。1 である Post モデル をデータベースから読み出します。Post モデルを用いて show という名前の ビュー を表示します。Post モデルの属性(アトリビュート)を読み出して表示します。
Be the first person to leave a comment
Please login to leave your comment.