在很多情況下,框架類並不能滿足項目的需求,這時候需要程序要自定義一些類,比如說基類等等,對比了TP框架,CI框架目前好像還沒加入命名空間,這點TP做得比較好,不用特殊的處理就可以隨便繼承自定義的類,只要處理好命名空間就行,在沒有加入命名空間的CI框架怎么辦呢?
思路:在入口文件做文章,這是在網上找到的辦法;
在入口文件加入自動加載的代碼:
function __autoload($class) { if (strpos($class, 'CI_') !== 0) { @include_once(APPPATH . 'common/' . $class . EXT); } }
個人覺得這種方法很不錯,那這是怎么實現的呢?
- 因為CI框架類都會自帶一個CI_作為類的前綴,因此只要自定義的類不要用CI_作為前綴是可以區分出來的,然后引入進來即可;
- 代碼如下:
// 自定義公共目錄路徑 define('COMMONPATH', APPPATH . 'common' . DIRECTORY_SEPARATOR); function __autoload($class) { if (strpos($class, 'CI_') !== 0) { @include_once(COMMONPATH . $class . '.php'); } }
這樣在common目錄自定義的類就可以被繼承了。