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