CodeIgniter架構——源碼分析之入口檔案index.php

來源:互聯網
上載者:User

標籤: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 */

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.