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
モデルの属性(アトリビュート)を読み出して表示します。
Found a typo or you think this page needs improvement?
Edit it on github !
Signup or Login in order to comment.