本文主要記錄一些自己在瀏覽CI代碼時候的一些體會, 并不分析CI的使用。
扎囊網站制作公司哪家好,找成都創新互聯公司!從網頁設計、網站建設、微信開發、APP開發、響應式網站建設等網站項目制作,到程序開發,運營維護。成都創新互聯公司從2013年開始到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選成都創新互聯公司。一 、 首先的一點就是, 已加載類在codeigniter, controller, model中的通用, 這使得CI的controller和model功能豐富。
體現在Controller中的構造函數中:
foreach (is_loaded() as $var => $class)
{
$this->$var =& load_class($class); //將加載過的載入
}
$this->load =& load_class(\'Loader\', \'core\');
$this->load->initialize(); // 加載autoload配置的庫類
體現在model中:
function __get($key)
{
$CI =& get_instance();
return $CI->$key;
}
方法中
通過這樣的操作, 是的CI的controller, model 功能豐富。
2、 CI允許擴展核心系統類:
在/system/core/common 中:
load_class 中有如下幾行:
foreach (array(APPPATH, BASEPATH) as $path) { if (file_exists($path.$directory.\'/\'.$class.\'.php\')) { $name = $prefix.$class; if (class_exists($name) === FALSE) { require($path.$directory.\'/\'.$class.\'.php\'); } break; } } // Is the request a class extension? If so we load it too if (file_exists(APPPATH.$directory.\'/\'.config_item(\'subclass_prefix\').$class.\'.php\')) { $name = config_item(\'subclass_prefix\').$class; if (class_exists($name) === FALSE) { require(APPPATH.$directory.\'/\'.config_item(\'subclass_prefix\').$class.\'.php\'); } }
對于Controller的重寫體現在(system/core/codeingiter):
require BASEPATH.\'core/Controller.php\';
function &get_instance()
{
return CI_Controller::get_instance();
}
if (file_exists(APPPATH.\'core/\'.$CFG->config[\'subclass_prefix\'].\'Controller.php\'))
{
require APPPATH.\'core/\'.$CFG->config[\'subclass_prefix\'].\'Controller.php\';
}
這可以滿足自己的業務邏輯的修改, 例如可以在自己擴展出來的controller中加一些權限控制的操作等等。
3、 Loader類也被controller加載了(依附在controller上的model也享受利益), 通過這個類,可以實現各種功能庫的加載
4、 可以掛載多個系統
根據業務需求可能需要開發多個系統, 可以在index.php , 根據業務類型, 修改index.php
$applocation_folder參數
例如: 可以在配置虛擬主機的時候, 設置service_name 等等 當然這只是一種思路
(待續)
對CI的common文件比較糾結的就是, 在整個框架代碼中, 突然出來一個這個理的方法還是有點讓人不知所措, 覺得應該在方法的前面加上一個common_之類的標記, 然后自己也可以在里面創建一個自己的同類文件, 在方法的前面標記上my_,, 可能會更加清晰一些
分享名稱:CI框架代碼體會
網站鏈接:http://vcdvsql.cn/article6/choeog.html
成都網站建設公司_創新互聯,為您提供面包屑導航、網站策劃、網站內鏈、品牌網站制作、小程序開發、外貿網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯