CodeIgniter 4.1の処理の流れ post

CodeIgniter 4.1の処理の流れをまとめました。

public/index.php

  1. PHPのバージョンをチェック
  2. 定数FCPATHを定義
  3. Config\Pathsをインスタンス化
  4. system/bootstrap.phpをロードしCodeIgniterをインスタンス化し$appに代入
  5. $app->run()

system/bootstrap.php

  1. パスに関する定数を定義
  2. Config/Constants.phpをロード
  3. Common.phpをロード
  4. オートローダーをロード
  5. サービスロケーターをロード
  6. オートローダーを初期化
  7. Composerオートローダーをロード
  8. DotEnvをインスタンス化し実行
  9. CodeIgniterをインスタンス化して$appに代入
  10. $app->initialize()
  11. $appを返す

CodeIgniter::initialize()

  1. 環境を検出
  2. 環境別のbootファイル(Config/Boot/環境.php)をロード
  3. 例外ハンドラを設定
  4. PHP機能拡張をチェック
  5. デフォルトロケールを設定
  6. デフォルトタイムゾーンを設定
  7. Kintを初期化

CodeIgniter::run()

  1. Requestオブジェクトを取得
  2. Responseオブジェクトを取得
  3. forceGlobalSecureRequestsを処理
  4. リクエストメソッドSpoofingを処理
  5. ページキャッシュをチェック
  6. リクエストを処理(handleRequest())

CodeIgniter::handleRequest()

  1. ルーティングを処理しフィルターを検索
  2. フィルターがあれば有効化
  3. beforeフィルターを実行
  4. コントローラを実行
    • クロージャーコントローラーなら実行
    • コントローラーをインスタンス化
    • コントローラーのメソッドを実行
  5. 出力を収集
  6. afterフィルターを実行
  7. Responseを送信
  8. Responseオブジェクトを返す

Date: 2021/02/19

Tags: codeigniter, codeigniter4