3 フォロワー

アプリケーションの実行

Yiiをインストールした後、URL `https://hostname/basic/web/index.php` または `https://hostname/index.php` (設定によって異なります)からアクセスできる動作するYiiアプリケーションが作成されます。このセクションでは、アプリケーションの組み込み機能、コードの構成、およびアプリケーションが一般的にリクエストを処理する方法について説明します。

情報: この「はじめに」チュートリアルの簡潔さのため、Webサーバーのドキュメントルートとして`basic/web`を設定し、アプリケーションへのアクセスURLを`https://hostname/index.php`などに設定していることを前提としています。必要に応じて、説明にあるURLを適宜調整してください。

フレームワーク自体とは異なり、プロジェクトテンプレートのインストール後は、自由にコードを追加または削除し、必要に応じて全体的に変更できます。

機能

インストールされた基本アプリケーションには、4つのページが含まれています。

  • URL `https://hostname/index.php` にアクセスしたときに表示されるホームページ、
  • 「概要」ページ、
  • エンドユーザーがメールで連絡できるようにする連絡フォームが表示される「お問い合わせ」ページ、
  • エンドユーザーを認証するために使用できるログインフォームが表示される「ログイン」ページです。「admin/admin」でログインしてみてください。「ログイン」メインメニュー項目が「ログアウト」に変わります。

これらのページは共通のヘッダーとフッターを共有しています。ヘッダーには、さまざまなページ間のナビゲーションを可能にするメインメニューバーが含まれています。

ブラウザウィンドウの下部にもツールバーが表示されます。これは、ログメッセージ、レスポンスステータス、実行されたデータベースクエリなど、多くのデバッグ情報を記録して表示するための、Yiiが提供する便利なデバッガーツールです。

Webアプリケーションに加えて、アプリケーションのベースディレクトリにある`yii`というコンソールスクリプトがあります。このスクリプトは、コンソールアプリケーションセクションで説明されているアプリケーションのバックグラウンドタスクとメンテナンスタスクを実行するために使用できます。

アプリケーション構造

アプリケーションで最も重要なディレクトリとファイルは次のとおりです(アプリケーションのルートディレクトリが`basic`であると仮定)。

basic/                  application base path
    composer.json       used by Composer, describes package information
    config/             contains application and other configurations
        console.php     the console application configuration
        web.php         the Web application configuration
    commands/           contains console command classes
    controllers/        contains controller classes
    models/             contains model classes
    runtime/            contains files generated by Yii during runtime, such as logs and cache files
    vendor/             contains the installed Composer packages, including the Yii framework itself
    views/              contains view files
    web/                application Web root, contains Web accessible files
        assets/         contains published asset files (javascript and css) by Yii
        index.php       the entry (or bootstrap) script for the application
    yii                 the Yii console command execution script

一般的に、アプリケーション内のファイルは、`basic/web`以下のファイルとそれ以外のディレクトリ以下のファイルの2種類に分類できます。前者はHTTP(つまりブラウザ)から直接アクセスできますが、後者はアクセスできず、アクセスすべきではありません。

Yii は、モデル・ビュー・コントローラー (MVC) アーキテクチャパターンを実装しており、上記のディレクトリ構成に反映されています。models ディレクトリにはすべてのモデルクラスviews ディレクトリにはすべてのビュースクリプトcontrollers ディレクトリにはすべてのコントローラークラスが含まれています。

次の図は、アプリケーションの静的構造を示しています。

Static Structure of Application

各アプリケーションには、エントリスクリプトweb/index.phpがあります。これはアプリケーション内で唯一Webからアクセス可能なPHPスクリプトです。エントリスクリプトは着信リクエストを受け取り、それを処理するためのアプリケーションインスタンスを作成します。アプリケーションは、そのコンポーネントの助けを借りてリクエストを解決し、リクエストをMVC要素にディスパッチします。ウィジェットビューで使用され、複雑で動的なユーザーインターフェース要素を構築するのに役立ちます。

リクエストライフサイクル

次の図は、アプリケーションがリクエストを処理する方法を示しています。

Request Lifecycle

  1. ユーザーがエントリスクリプトweb/index.phpにリクエストを行います。
  2. エントリスクリプトはアプリケーションの設定を読み込み、リクエストを処理するためのアプリケーションインスタンスを作成します。
  3. アプリケーションは、リクエストアプリケーションコンポーネントの助けを借りて、リクエストされたルートを解決します。
  4. アプリケーションは、リクエストを処理するためのコントローラーインスタンスを作成します。
  5. コントローラーはアクションインスタンスを作成し、アクションのフィルターを実行します。
  6. フィルターが失敗すると、アクションはキャンセルされます。
  7. すべてのフィルターがパスすると、アクションが実行されます。
  8. アクションは、データベースから可能性のあるいくつかのデータモデルを読み込みます。
  9. アクションはビューをレンダリングし、データモデルを提供します。
  10. レンダリングされた結果は、レスポンスアプリケーションコンポーネントに返されます。
  11. レスポンスコンポーネントは、レンダリングされた結果をユーザーのブラウザに送信します。

タイプミスを発見したか、このページの改善が必要だと思いますか?
githubで編集する !