W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
每次 CodeIgniter 運行時,都有一些基礎(chǔ)類伴隨著核心框架自動的被初始化。 但你也可以使用你自己類來替代這些核心類或者擴展這些核心類。
大多數(shù)用戶一般不會有這種需求,但對于那些想較大幅度的改變 CodeIgniter 的人來說,我們依然提供了替換和擴展核心類的選擇。
注解
改變系統(tǒng)核心類會產(chǎn)生很大影響,所以在你做之前必須清楚地 知道自己正在做什么。
以下是系統(tǒng)核心文件的清單,它們在每次 CodeIgniter 啟動時被調(diào)用:
要使用你自己的系統(tǒng)類替換默認的系統(tǒng)類只需簡單的將你自己的文件 放入目錄 application/core 下:
application/core/some_class.php
如果這個目錄不存在,你可以創(chuàng)建一個。
任何一個和上面清單中同名的文件將被替換成核心類。
要注意的是,你的類名必須以 CI 開頭,譬如,你的文件是 Input.php , 那么類應(yīng)該命名為:
class CI_Input {
}
如果你只是想往現(xiàn)有類中添加一些功能,譬如增加一兩個方法,這時替換 整個類感覺就有點殺雞用牛刀了。在這種情況下,最好是使用擴展類的方法。 擴展一個類和替換一個類的做法幾乎是一樣的,除了要注意以下幾點:
舉個例子,要擴展原始的 Input 類,你需要新建一個文件 application/core/MY_Input.php,然后像下面這樣定義你的類:
class MY_Input extends CI_Input {
}
注解
如果在你的類中需要使用構(gòu)造函數(shù),記得要調(diào)用父類的構(gòu)造函數(shù):
class MY_Input extends CI_Input {
public function __construct()
{
parent::__construct();
}
}
提示: 任何和父類同名的方法將會取代父類中的方法(這又被稱作 “方法覆蓋”), 這讓你可以充分的利用并修改 CodeIgniter 的核心。
如果你擴展了 控制器 核心類,那么記得在你的應(yīng)用程序控制器里繼承你 擴展的新類。
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_ 開頭,所以請不要使用這個 作為你的自定義前綴。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: