CI框架隨筆


CI框架是使用php寫的一套框架,讀起來相對比較簡單。

 

 

正常來說,CI有兩個重要的文件夾,第一個是application,這個用戶開發的代碼存放地址,另外一個是system這個是真正CI源碼的位置。

 

CI的根目錄下面的index.php 這個文件里面配置了需要關心的各個配置。

 

第一個是 ENVIRONMENT 這個環境變量,這個變量在后面的加載類的時候,指定到底調用哪個累文件,標准情況下一個是development開發,一個是production。

 

define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');

 

第二個 是系統$system_path,用來表示用的CI源碼在哪里。

 

第三個 是$application_floder 用來定義自己的項目代碼目錄

 

第四個是 BASEPATH這個其實就是$system_path

define('BASEPATH', $system_path);

 

第五個 是APPPATH 這個是$application_floder加上'/' 當然這里根據$application_floder是否是目錄,還進行一些邏輯上的容錯處理。

 

最后也是最重要的引入CI框架的初始化文件

require_once BASEPATH.'core/CodeIgniter.php';

 

下面說的是CodeIgniter.php這個文件,是加載CI文件導火線,發射器,當這里也會加載用戶開發項目的文件

 

加載用戶的config 下面的 constants.php 

 

最早加載了Common.php這個文件,這個文件里包含后面加載其他文件用到的一些常用方法。

require_once(BASEPATH.'core/Common.php');

 

加載用戶config 下面的config/config.php 和 APPPATH.'config/'.ENVIRONMENT.'/config.php'

這里要注意的是上面個的配置文件中必須有$config數組。

 

后續很多的地方使用了load_class 這個公共函數來加載類,應該注意的是加載system.core.Config.php 放到最前面,而core/Controller.php是放后面加載

require_once BASEPATH.'core/Controller.php';特別要說的一點是,通過load_class加載的早於CI_Controller實例化的類,都將會成為CI_Controller實例一個成員,這是因為,通過load_class加載的類都會放到一個static 的數組里面,在初始化CI_Controller的實例的時候,會加載放到static數組里的類。

 

 

下面要是說的一個類是load可以看到通過這個類加載很多類,

 

其中一個函數式model 這個是用來加載位於用戶models目錄下的文件類,並把這個類實例做為CI的一個成員變量。

 

一個函數是helper這個函數更多的是加載時用戶和core目錄下的helper中查找類,並且類名稱是以_helper.php 為結尾。這些類里面一般都是一些函數。

 

另一個是database這個函數式加載數據庫操作的,這個函數首先加載用戶目錄下的配置文件config/database.php,根據里面配置參數dbdriver選項獲得相應類型的sql驅動器類。最后將初始化后的類實例作為CI實例的一個變量。如果不傳遞任何參數,這使用默認的default 初始化。否則使用傳遞參數實例化sql驅動器類。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM