Yiiはウェブプログラミングで幅広く採用されている、モデル-ビュー-コントローラ (MVC) デザインパターンを実装しています。 MVCはユーザインタフェースの考慮からビジネスロジックを分離することが目的であり、開発者はそれぞれの部分お互いに影響することが無く容易に変更することが可能です。 MVCにおいては、モデル(M)は情報(データ)とビジネスルールを表現し、ビュー(V)はフォームやテキストのようなユーザインタフェースを含み、コントローラ(C)はモデルとビューの通信を管理します。
MVCの他に、Yiiはリクエスト処理のコンテキストを実行する、アプリケーションと呼ばれるフロントコントローラを導入しました。 アプリケーションはユーザリクエストを解析し、さらに処理を進めるために適切なコントローラへ処理を渡します。
以下の図はYiiアプリケーションの静的な構造を示します。
Yiiアプリケーションの静的な構造
以下の図はYiiアプリケーションがユーザリクエストを処理する時の典型的なワークフローを示します。
ユーザリクエストを処理する時の典型的なワークフロー
http://www.example.com/index.php?r=post/show&id=1
としてリクエストを発行します。
ウェブサーバはブートストラップスクリプトindex.php
を実行してリクエストを処理します。request
という名前のアプリケーションコンポーネントから得ます。urlManager
という名前のアプリケーションコンポーネントの助けによって得ます。
例えば、コントローラはpost
でそのクラスはPostController
であり、アクションはshow
で実際の関数名はコントローラによって決定されます。show
がコントローラクラスのactionShow
メソッドであると決定します。
そして、アクションに応じた、例えばアクセス制御とかベンチマークとかのフィルタを生成し、実行します。
アクションはフィルタにより認められた場合に限り実行されます。Post
モデル のID番号1をデータベースから読み出します。Post
モデルを用いてshow
という名前のビューを表示します。Post
モデルからアトリビュートを読み出し、表示します。
Signup or Login in order to comment.