首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

CodeIgniter 框架核心架構流程圖解析

     編輯:PHP 綜合知識

應用程序執行流程(官方流程圖文字版)

  1. index.php:前端控制器,初始化基礎常量、環境、錯誤處理、載入核心類 CodeIgniter.php。
  2. Router:解析 $_SERVER['REQUEST_URI'],根據 routes.php 決定調用哪個控制器/方法。
  3. Cache 檢查:若存在有效緩存文件,直接輸出給瀏覽器,跳過後續流程。
  4. Security 過濾:全局 XSS 過濾、CSRF 驗證、輸入數據清洗($_GET/POST/COOKIE)。
  5. Application Controller 載入:實例化控制器類,載入模型、庫、輔助函數等資源。
  6. Controller 執行:調用對應方法處理業務邏輯。
  7. View 渲染:載入視圖文件,生成最終 HTML。
  8. Cache 寫入:若啟用緩存,將輸出內容存入緩存文件。
  9. 輸出發送:經 Output::_display() 發送 HTTP 響應。

MVC 角色詳解

層職責CI 具體實現
Model數據結構、業務邏輯、資料庫操作CI_Model、Active Record、Entity/Repository(自行擴展)
View展示邏輯、模板渲染PHP 原生模板、$this->load->view()、支援片段視圖(header/footer)
Controller請求分發、協調 M/V、響應組裝CI_Controller、方法對應 URL 段、$this->load 載入資源

CI 的鬆耦合特性

  • Model 非強制:可在 Controller 直接操作 DB,或使用 Service 層、Repository 模式。
  • 核心類可擴展:MY_Controller、MY_Model、MY_Router 等覆蓋核心行為。
  • 兼容第三方庫:Composer 自動載入、libraries/ 放置非 CI 風格類庫。

關鍵入口文件 index.php 可配置常量

define('ENVIRONMENT', 'development'); // production / testing
define('APPLICATION_FOLDER', 'application');
define('SYSTEM_FOLDER', 'system');
define('VIEW_FOLDER', '');

典型請求生命週期鉤子點

pre_system
    ↓
pre_controller
    ↓
post_controller_constructor
    ↓
Controller::method()
    ↓
post_controller
    ↓
display_override / _display()
    ↓
post_system

避坑指南

  • 不要在構造函數執行重邏輯,改用 post_controller_constructor 鉤子或基類 MY_Controller::__construct()。
  • 輸出前務必經 $this->output->set_output(),否則緩存、壓縮、Headers 可能失效。
  • 異常處理:show_error()、show_404()、log_message() 統一記錄。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved