CodeIgniterの処理の流れについて

フロントコントローラーからどのようにしてコントローラーが呼び出されるかをメモ代わりに記述。

index.phpでは、基本的なディレクトリ設定を行う。その後、codeigniter/CodeIgniter.phpを呼び出す。
CodeIgniter.phpでの流れ
Common.phpをrequire 基本関数の設定とロード関数を定義
Compat.phpをrequire
set_error_handler('_exception_handler');
set_magic_quotes_runtime(0); // Kill magic quotes
ベンチマーククラスのロード
フッククラスのロード

  • プレシステムフックのロード

コンフィグクラスのロード
URIクラスのロード
ルータークラスのロード
アウトプットクラスのロード

  • cache_overrideフックがFALSEの判定

Inputクラスのロード
言語クラスのロード
PHPのバージョンを判定してBaseクラスのロード
ベースコントローラーのロード

  • アプリケーションのコントローラーがなければエラー
  • コントローラー呼び出し

クラス名取得
メソッド名取得
メソッドの存在判定(プライベートメソッドも判定)

  • プレコントローラーフックの読み込み

コントローラーをインスタンス

  • ポストコントローラーコンストラクタを読み込み
  • ポストコントローラを読み込み
  • display_overrideフックの判定
  • post_systemフックの読み込み

CI_DBがある場合は最後にDBクローズ