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.