CodeIgniter 4.1の処理の流れ
(2022-10-31 追記) 「CodeIgniter 4.3の処理の流れ」 を書きました。
CodeIgniter 4.1の処理の流れをまとめました。
public/index.php
- PHPのバージョンをチェック
- 定数
FCPATH
を定義 Config\Paths
をインスタンス化system/bootstrap.php
をロードしCodeIgniter
をインスタンス化し$app
に代入$app->run()
system/bootstrap.php
- パスに関する定数を定義
Config/Constants.php
をロードCommon.php
をロード- オートローダーをロード
- サービスロケーターをロード
- オートローダーを初期化
- Composerオートローダーをロード
DotEnv
をインスタンス化し実行CodeIgniter
をインスタンス化して$app
に代入$app->initialize()
$app
を返す
CodeIgniter::initialize()
- 環境を検出
- 環境別のbootファイル(
Config/Boot/環境.php
)をロード - 例外ハンドラを設定
- PHP機能拡張をチェック
- デフォルトロケールを設定
- デフォルトタイムゾーンを設定
- Kintを初期化
CodeIgniter::run()
- Requestオブジェクトを取得
- Responseオブジェクトを取得
forceGlobalSecureRequests
を処理- リクエストメソッドSpoofingを処理
- ページキャッシュをチェック
- リクエストを処理(
handleRequest()
)
CodeIgniter::handleRequest()
- ルーティングを処理しフィルターを検索
- フィルターがあれば有効化
- beforeフィルターを実行
- コントローラを実行
- クロージャーコントローラーなら実行
- コントローラーをインスタンス化
- コントローラーのメソッドを実行
- 出力を収集
- afterフィルターを実行
- Responseを送信
- Responseオブジェクトを返す
関連
Date: 2021/02/19