CodeIgniter 創(chuàng)建核心系統(tǒng)類

2018-07-21 15:37 更新

創(chuàng)建核心系統(tǒng)類

每次 CodeIgniter 運行時,都有一些基礎(chǔ)類伴隨著核心框架自動的被初始化。 但你也可以使用你自己類來替代這些核心類或者擴展這些核心類。

大多數(shù)用戶一般不會有這種需求,但對于那些想較大幅度的改變 CodeIgniter 的人來說,我們依然提供了替換和擴展核心類的選擇。

注解

改變系統(tǒng)核心類會產(chǎn)生很大影響,所以在你做之前必須清楚地 知道自己正在做什么。

系統(tǒng)類清單

以下是系統(tǒng)核心文件的清單,它們在每次 CodeIgniter 啟動時被調(diào)用:

  • Benchmark
  • Config
  • Controller
  • Exceptions
  • Hooks
  • Input
  • Language
  • Loader
  • Log
  • Output
  • Router
  • Security
  • URI
  • Utf8

替換核心類

要使用你自己的系統(tǒng)類替換默認的系統(tǒng)類只需簡單的將你自己的文件 放入目錄 application/core 下:

application/core/some_class.php

如果這個目錄不存在,你可以創(chuàng)建一個。

任何一個和上面清單中同名的文件將被替換成核心類。

要注意的是,你的類名必須以 CI 開頭,譬如,你的文件是 Input.php , 那么類應(yīng)該命名為:

class CI_Input {

}

擴展核心類

如果你只是想往現(xiàn)有類中添加一些功能,譬如增加一兩個方法,這時替換 整個類感覺就有點殺雞用牛刀了。在這種情況下,最好是使用擴展類的方法。 擴展一個類和替換一個類的做法幾乎是一樣的,除了要注意以下幾點:

  • 你定義的類必須繼承自父類。
  • 你的類名和文件名必須以 MY_ 開頭。(這是可配置的,見下文)

舉個例子,要擴展原始的 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_ 開頭,所以請不要使用這個 作為你的自定義前綴。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號