# 創建核心系統類
每次 CodeIgniter 運行時,都有一些基礎類伴隨著核心框架自動的被初始化。 但你也可以使用你自己類來替代這些核心類或者擴展這些核心類。
**大多數用戶一般不會有這種需求,但對于那些想較大幅度的改變 CodeIgniter 的人來說,我們依然提供了替換和擴展核心類的選擇。**
注解
改變系統核心類會產生很大影響,所以在你做之前必須清楚地 知道自己正在做什么。
## 系統類清單
以下是系統核心文件的清單,它們在每次 CodeIgniter 啟動時被調用:
* Benchmark
* Config
* Controller
* Exceptions
* Hooks
* Input
* Language
* Loader
* Log
* Output
* Router
* Security
* URI
* Utf8
## 替換核心類
要使用你自己的系統類替換默認的系統類只需簡單的將你自己的文件 放入目錄?application/core?下:
~~~
application/core/some_class.php
~~~
如果這個目錄不存在,你可以創建一個。
任何一個和上面清單中同名的文件將被替換成核心類。
要注意的是,你的類名必須以 CI 開頭,譬如,你的文件是 Input.php , 那么類應該命名為:
~~~
class CI_Input {
}
~~~
## 擴展核心類
如果你只是想往現有類中添加一些功能,譬如增加一兩個方法,這時替換 整個類感覺就有點殺雞用牛刀了。在這種情況下,最好是使用擴展類的方法。 擴展一個類和替換一個類的做法幾乎是一樣的,除了要注意以下幾點:
* 你定義的類必須繼承自父類。
* 你的類名和文件名必須以 MY_ 開頭。(這是可配置的,見下文)
舉個例子,要擴展原始的 Input 類,你需要新建一個文件 application/core/MY_Input.php,然后像下面這樣定義你的類:
~~~
class MY_Input extends CI_Input {
}
~~~
注解
如果在你的類中需要使用構造函數,記得要調用父類的構造函數:
~~~
class MY_Input extends CI_Input {
public function __construct()
{
parent::__construct();
}
}
~~~
**提示:**?任何和父類同名的方法將會取代父類中的方法(這又被稱作 “方法覆蓋”), 這讓你可以充分的利用并修改 CodeIgniter 的核心。
如果你擴展了 控制器 核心類,那么記得在你的應用程序控制器里繼承你 擴展的新類。
~~~
class Welcome extends MY_Controller {
public function __construct()
{
parent::__construct();
}
public function index()
{
$this->load->view('welcome_message');
}
}
~~~
### 自定義前綴
要想自定義你自己的類的前綴,打開文件?application/config/config.php?然后找到這項:
~~~
$config['subclass_prefix'] = 'MY_';
~~~
請注意所有原始的 CodeIgniter 類庫都以 CI_ 開頭,所以請不要使用這個 作為你的自定義前綴。
- 歡迎使用 CodeIgniter
- 安裝說明
- 下載 CodeIgniter
- 安裝說明
- 從老版本升級
- 疑難解答
- CodeIgniter 概覽
- CodeIgniter 將從這里開始
- CodeIgniter 是什么?
- 支持特性
- 應用程序流程圖
- 模型-視圖-控制器
- 設計與架構目標
- 教程 - 內容提要
- 加載靜態內容
- 讀取新聞條目
- 創建新聞條目
- 結束語
- 常規主題
- CodeIgniter URL
- 控制器
- 保留名稱
- 視圖
- 模型
- 輔助函數
- 使用 CodeIgniter 類庫
- 創建類庫
- 使用 CodeIgniter 驅動器
- 創建驅動器
- 創建核心系統類
- 創建附屬類
- 鉤子 - 擴展框架核心
- 自動加載資源
- 公共函數
- 兼容性函數
- URI 路由
- 錯誤處理
- 網頁緩存
- 程序分析
- 以 CLI 方式運行
- 管理你的應用程序
- 處理多環境
- 在視圖文件中使用 PHP 替代語法
- 安全
- PHP 開發規范
- 類庫參考
- 基準測試類
- 緩存驅動器
- 日歷類
- 購物車類
- 配置類
- Email 類
- 加密類
- 加密類(新版)
- 文件上傳類
- 表單驗證類
- FTP 類
- 圖像處理類
- 輸入類
- Javascript 類
- 語言類
- 加載器類
- 遷移類
- 輸出類
- 分頁類
- 模板解析類
- 安全類
- Session 類
- HTML 表格類
- 引用通告類
- 排版類
- 單元測試類
- URI 類
- 用戶代理類
- XML-RPC 與 XML-RPC 服務器類
- Zip 編碼類
- 數據庫參考
- 數據庫快速入門: 示例代碼
- 數據庫配置
- 連接你的數據庫
- 查詢
- 生成查詢結果
- 查詢輔助函數
- 查詢構造器類
- 事務
- 數據庫元數據
- 自定義函數調用
- 數據庫緩存類
- 數據庫工廠類
- 數據庫工具類
- 數據庫驅動器參考
- 輔助函數參考
- 數組輔助函數
- 驗證碼輔助函數
- Cookie 輔助函數
- 日期輔助函數
- 目錄輔助函數
- 下載輔助函數
- 郵件輔助函數
- 文件輔助函數
- 表單輔助函數
- HTML 輔助函數
- 語言輔助函數
- Inflector 輔助函數
- 數字輔助函數
- 路徑輔助函數
- 安全輔助函數
- 表情輔助函數
- 字符串輔助函數
- 文本輔助函數
- 排版輔助函數
- URL 輔助函數
- XML 輔助函數
- 向 CodeIgniter 貢獻你的力量