標籤:style blog http color 使用 os io 檔案
CodeIgniter架構的入口檔案主要是配置開發環境,定義目錄常量,載入CI的核心類core/CodeIgniter.php。
源碼分析如下:
<?php//這個檔案是入口,後期所有的檔案都要在這裡執行。/*----------------------------------------------- * 系統內容配置常量 * 能夠配置錯誤顯示層級 * ----------------------------------------------- * 預設情況下: * development //開發環境報告所有錯誤 * testing //測試環境不報告錯誤 * production //生產環境不報告錯誤 */ define(‘ENVIRONMENT‘, ‘development‘); /* * 根據環境常量開啟不同的錯誤顯示層級 */ switch (ENVIRONMENT){ case ‘development‘: error_reporting(E_ALL); break; case ‘testing‘: case ‘production‘: error_reporting(0); break; default: exit(‘應用的環境設定錯誤.‘); } /* * ---------------------http://i.cnblogs.com/?postid=3921349&update=1 * 系統檔案目錄,可以自訂 * -------------------- * 預設情況下是"system"檔案夾,並且在相對於index.php檔案同一個目錄下。 * 你可以更改這個路徑,但是路徑必須與你的系統檔案所在位置一致 * * 不需要後面的斜杠"/"; */ $system_path = ‘system‘; /* *--------------------------------------------------------------- * 應用程式目錄 *--------------------------------------------------------------- * * 這個檔案夾是放置程式的地方,預設情況是“application”檔案夾,可以重新命名或重定位到伺服器上的任何位置。 * 詳情可以訪問: * http://codeigniter.com/user_guide/general/managing_apps.html * * 不需要後面的斜杠"/"; * */ $application_folder = ‘application‘; /* * -------------------------------------------------------------------- * 這個地方有一段使用者自己設定的代碼,我自己還沒怎麼搞清楚,就不寫了 * -------------------------------------------------------------------- */
/* * --------------------------------------------------------------- * 使用可靠的路徑解決路由問題 * --------------------------------------------------------------- */ // 是否是從命令列運行?————正確設定目前的目錄下命令列(CLI)請求 if (defined(‘STDIN‘)){ chdir(dirname(__FILE__)); } if (realpath($system_path) !== FALSE){ $system_path = realpath($system_path).‘/‘; } // 確保最後一定以後一個斜杠"/"; $system_path = rtrim($system_path, ‘/‘).‘/‘; // 判斷系統目錄是否存在 if ( ! is_dir($system_path)){ exit("你的系統目錄未設定正確. 請開啟以下檔案重新設定: ".pathinfo(__FILE__, PATHINFO_BASENAME)); } /* * ------------------------------------------------------------------- * 設定路徑(目錄)常量 * ------------------------------------------------------------------- */ // 獲得當前檔案名稱,即定義入口檔案名稱 define(‘SELF‘, pathinfo(__FILE__, PATHINFO_BASENAME)); // php副檔名
//不推薦使用全域常量 define(‘EXT‘, ‘.php‘); // 系統目錄常量 define(‘BASEPATH‘, str_replace("\\", "/", $system_path)); // 前端控制器路徑常量,即入口檔案的目錄 define(‘FCPATH‘, str_replace(SELF, ‘‘, __FILE__)); // 系統核心目錄名
//trim(BASEPATH, ‘/‘)用來去掉首尾的‘/’————trim()函數從字串的兩端刪除空白字元和其他預定義字元
//strrchr()函數尋找字串在另一個字串中最後一次出現的位置,並返回從該位置到字串結尾的所有字元
define(‘SYSDIR‘, trim(strrchr(trim(BASEPATH, ‘/‘), ‘/‘), ‘/‘)); //定義應用目錄常量 if (is_dir($application_folder)){ define(‘APPPATH‘, $application_folder.‘/‘); }else{ if ( ! is_dir(BASEPATH.$application_folder.‘/‘)){ exit("你的應用程式目錄可能未設定正確. 請開啟以下檔案設定: ".SELF); } define(‘APPPATH‘, BASEPATH.$application_folder.‘/‘); } /* * -------------------------------------------------------------------- * 載入自舉檔案 * -------------------------------------------------------------------- */
//前面都是定義環境和定義常量,現在開始載入CI核心檔案,開始真正的CI之旅
require_once BASEPATH.‘core/CodeIgniter‘.EXT; /* End of file index.php *//* Location: ./index.php */