Yii 作為高效能 PHP 框架,其原始碼結構清晰、模組化程度高。閱讀核心目錄結構是理解框架運作機制、擴展功能、排查疑難雜症的基礎。本文系統梳理 Yii 1.x 核心庫 framework/ 目錄架構。
framework/ ├── base/ # 基礎核心類 ├── caching/ # 快取組件 ├── cli/ # 命令列工具 ├── collections/ # 資料結構集合 ├── console/ # 控制台應用 ├── db/ # 資料庫存取層 ├── gii/ # 代碼生成器 ├── i18n/ # 國際化 ├── logging/ # 日誌系統 ├── messages/ # 多語言訊息 ├── test/ # 測試基礎 ├── utils/ # 工具類 ├── validators/ # 驗證器 ├── vendors/ # 第三方庫 ├── views/ # 系統視圖 └── web/ # Web 應用核心
包含框架最核心的基礎類:
CCache 抽象基類CMemCache、CApcCache、CXCache、CEAcceleratorCache 等具體實現CDummyCache:空實現,開發/測試環境禁用快取用CDbConnection:PDO 連線封裝、主從分離、查詢快取CDbCommand:SQL 執行、參數綁定、查詢建構器CActiveRecord:ORM 核心,支援關聯、命名範圍、行為掛載CDbMigration:資料庫版本控制遷移工具web/ ├── actions/ # 控制器動作類 (CAction, CInlineAction) ├── auth/ # 認證授權 (CAuthManager, CAccessControlFilter, CWebUser) ├── helpers/ # HTML、URL、表單等視圖輔助類 ├── widgets/ # UI 元件 (CWidget, CBasePager, CListView, CGridView, CActiveForm) ├── services/ # Web 服務 (SOAP, REST) └── ...
Web 介面生成 Model、Controller、View、CRUD、Module、Extension 等代碼,極大提升開發效率。
CPhpMessageSource、CGettextMessageSourceCDateTimeFormatter、CNumberFormattermessages/CFileLogRoute、CEmailLogRoute、CWebLogRoute(FirePHP)、CDbLogRoutebase/CApplication.php 切入,理解應用啟動流程(init() → run() → processRequest())base/CComponent.php 掌握屬性/事件/行為機制,這是 Yii 擴展性的核心db/CActiveRecord.php 理解 ORM 實現細節(關聯載入、命名範圍、預載入)web/widgets/ 學習可重用 UI 元件設計模式gii/ 理解代碼生成模板與自定義擴展Yii 核心庫採用高內聚、低耦合的模組化設計。base/ 奠定基礎設施,db/ 與 web/ 構建業務開發主戰場,caching/、logging/、i18n/ 提供企業級支撐。系統閱讀原始碼不僅能精通框架用法,更能學習優秀的 PHP 架構設計模式。