このページでは、Yii Frameworkにおけるモデル・ビュー・コントローラ (MVC) デザインパターンの実装と、リクエスト処理の具体的な流れについて解説されています。

1. MVCの基本概念

Yiiは、ユーザーインターフェースとビジネスロジックを分離するためにMVCを採用しています。

また、Yii独自の要素として、リクエスト処理の実行コンテキストをカプセル化した**「アプリケーション(フロントコントローラ)」**が導入されています。

2. 静的な構造

Yiiアプリケーションは、以下のコンポーネントが連携して構成されます。

3. リクエスト処理のワークフロー(実行の流れ)

ユーザーがURL(例: index.php?r=post/show&id=1)にアクセスした際、以下の手順で処理が進みます。

  1. エントリスクリプト: index.php が実行され、アプリケーションのインスタンスが作成されます。
  2. リクエストの解析: urlManager コンポーネントの助けを借りて、どの「コントローラ」と「アクション」を呼び出すか決定します。
  3. コントローラの生成: 指定されたコントローラ(例: PostController)のインスタンスを作成します。
  4. フィルタの実行: アクセス制御などのフィルタ(前処理)を実行し、許可されればアクションを開始します。
  5. データの取得(モデル): アクションがデータベースから必要なデータ(例: IDが1の投稿データ)を読み出します。