CodeIgniter 4.3の処理の流れ

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

CodeIgniter 4.3 Process Flow

public/index.php

check PHP version

define constant FCPATH

instantiate Config\Paths

  • Config\Paths

    • $systemDirectory
    • $appDirectory
    • $writableDirectory
    • $testsDirectory
    • $viewDirectory

load system/bootstrap.php

  • system/bootstrap.php

    • define constants for directory paths

      • APPPATH
      • ROOTPATH
      • SYSTEMPATH
      • WRITEPATH
      • TESTPATH
    • load Config/Constants.php

    • load Common.php
    • load Autoloader
    • load Services
    • instantiate Autoloader and initialize
    • autoload helpers

      • URL helper
    • load Composer autoloader

instantiate DotEnv and load .env file

instantiate CodeIgniter

  • Services::codeigniter()

    • instantiate Config\App
    • CodeIgniter::__construct()

initialize CodeIgniter

  • CodeIgniter::initialize()

    • detect Environment
    • load Environment bootstrap
    • set Exception/Error handler

      • Services::exceptions()->initialize()
    • check missing required PHP extensions

    • set default locale
    • set default timezone
    • initialize Kint
  • CodeIgniter::setContext()

run CodeIgniter

  • CodeIgniter::run()

    • instantiate Request

      • Services::createRequest()
      • Services::incomingrequest()

        • IncomingRequest::__construct()

          • detectURI()

            • update superglobals

              • update $_SERVER
              • update $_GET
            • update URI object

            • set path in Request
    • instantiate Response

    • force secure access
    • spoof request method
    • check Page Cache
    • handle request

      • CodeIgniter::handleRequest()

        • tryToRouteIt()

          • instantiate Routes
          • instantiate Router
          • get Controller and method name
          • set locale in Request
          • get Controller Filters
        • enable Controller Filters

        • run before Filters
        • run Controller

          • run Closure controller
          • or

            • instantiate Controller
            • run Controller method
        • gather output

        • run after Filters
        • send response
        • return Response object

Date: 2022/10/31

Tags: codeigniter, codeigniter4