0 フォロワー

ブートストラップ

ブートストラップとは、アプリケーションが着信リクエストを解決して処理を開始する前に、環境を準備するプロセスのことを指します。ブートストラップは、エントリスクリプトアプリケーションの2箇所で行われます。

エントリスクリプトでは、異なるライブラリのクラスオートローダーが登録されます。これには、Composerの`autoload.php`ファイルによるオートローダーと、Yiiの`Yii`クラスファイルによるオートローダーが含まれます。次に、エントリスクリプトはアプリケーションの設定をロードし、アプリケーションインスタンスを作成します。

アプリケーションのコンストラクタでは、以下のブートストラップ処理が行われます

  1. preInit()が呼び出され、basePathなど、優先度の高いアプリケーションプロパティが設定されます。
  2. エラーハンドラーを登録します。
  3. 与えられたアプリケーション設定を使用して、アプリケーションのプロパティを初期化します。
  4. init()が呼び出され、今度はbootstrap()を呼び出してブートストラップコンポーネントを実行します。

ブートストラップ処理はすべてのリクエストを処理する前に実行する必要があるため、このプロセスを軽量に保ち、可能な限り最適化することが非常に重要です。

ブートストラップコンポーネントは、あまり多く登録しないようにしてください。ブートストラップコンポーネントが必要となるのは、リクエスト処理のライフサイクル全体に関与する必要がある場合のみです。例えば、モジュールが追加のURL解析ルールを登録する必要がある場合、そのモジュールはbootstrap プロパティにリストされる必要があります。これにより、新しいURLルールがリクエストを解決するために使用される前に有効になります。

本番モードでは、PHPファイルのインクルードと解析にかかる時間を最小限にするために、PHP OPcacheAPCなどのバイトコードキャッシュを有効にしてください。

大規模なアプリケーションでは、非常に複雑なアプリケーション構成が、多数の小さな構成ファイルに分割されている場合があります。この場合、構成配列全体をキャッシュし、エントリスクリプトでアプリケーションインスタンスを作成する前にキャッシュから直接ロードすることを検討してください。

タイプミスを見つけたり、このページを改善する必要があると思った場合は?
GitHubで編集する !