首页 > 学院 > 开发设计 > 正文

CI加载流程小结

2019-11-15 02:05:51
字体:
来源:转载
供稿:网友
CI加载流程小结

  无聊,决定水一把。

  CI(CodeIgniter)是我最早接触的一个框架,到现在也只是用了其中一点零碎的方法。一直想对其流程做个小结,却总是因各种各样的“理由”挨着。看见别人图表齐上阵,没那耐心,就从代码说起吧,权当做个笔记,纪念一下。

  看在线的用户手册,也知道,将CI下载下来(最新版本2.2.1),解压到机子上,比如www目录,可改个根目录名(原名CodeIgniter-2.2-stable太长),初步目录文件如下,当然这在是windows下面。

  

访问下,如localhost/ci/index.php,就进入CI默认的Welcome页面

  

  如何一步步加载这个页面的?首先访问的是index.php脚本

  1 <?php  2   3 /*  4  *---------------------------------------------------------------  5  * application ENVIRONMENT  6  *---------------------------------------------------------------  7  *  8  * You can load different configurations depending on your  9  * current environment. Setting the environment also influences 10  * things like logging and error reporting. 11  * 12  * This can be set to anything, but default usage is: 13  * 14  *     development 15  *     testing 16  *     PRoduction 17  * 18  * NOTE: If you change these, also change the error_reporting() code below 19  * 20  */ 21     define('ENVIRONMENT', 'development'); 22 /* 23  *--------------------------------------------------------------- 24  * ERROR REPORTING 25  *--------------------------------------------------------------- 26  * 27  * Different environments will require different levels of error reporting. 28  * By default development will show errors but testing and live will hide them. 29  */ 30  31 if (defined('ENVIRONMENT')) 32 { 33     switch (ENVIRONMENT) 34     { 35         case 'development': 36             error_reporting(E_ALL); 37         break; 38  39         case 'testing': 40         case 'production': 41             error_reporting(0); 42         break; 43  44         default: 45             exit('The application environment is not set correctly.'); 46     } 47 } 48  49 /* 50  *--------------------------------------------------------------- 51  * SYSTEM FOLDER NAME 52  *--------------------------------------------------------------- 53  * 54  * This variable must contain the name of your "system" folder. 55  * Include the path if the folder is not in the same  directory 56  * as this file. 57  * 58  */ 59     $system_path = 'system'; 60  61 /* 62  *--------------------------------------------------------------- 63  * APPLICATION FOLDER NAME 64  *--------------------------------------------------------------- 65  * 66  * If you want this front controller to use a different "application" 67  * folder then the default one you can set its name here. The folder 68  * can also be renamed or relocated anywhere on your server.  If 69  * you do, use a full server path. For more info please see the user guide: 70  * http://codeigniter.com/user_guide/general/managing_apps.html 71  * 72  * NO TRAILING SLASH! 73  * 74  */ 75     $application_folder = 'application'; 76  77 /* 78  * -------------------------------------------------------------------- 79  * DEFAULT CONTROLLER 80  * -------------------------------------------------------------------- 81  * 82  * Normally you will set your default controller in the routes.php file. 83  * You can, however, force a custom routing by hard-coding a 84  * specific controller class/function here.  For most applications, you 85  * WILL NOT set your routing here, but it's an option for those 86  * special instances where you might want to override the standard 87  * routing in a specific front controller that shares a common CI installation. 88  * 89  * IMPORTANT:  If you set the routing here, NO OTHER controller will be 90  * callable. In essence, this preference limits your application to ONE 91  * specific controller.  Leave the function name blank if you need 92  * to call functions dynamically via the URI. 93  * 94  * Un-comment the $routing array below to use this feature 95  * 96  */ 97     // The directory name, relative to the "controllers" folder.  Leave blank 98     // if your controller is not in a sub-folder within the "controllers" folder 99     // $routing['directory'] = '';100 101     // The controller class file name.  Example:  Mycontroller102     // $routing['controller'] = '';103 104     // The controller function you wish to be called.105     // $routing['function']    = '';106 107 108 /*109  * -------------------------------------------------------------------110  *  CUSTOM CONFIG VALUES111  * -------------------------------------------------------------------112  *113  * The $assign_to_config array below will be passed dynamically to the114  * config class when initialized. This allows you to set custom config115  * items or override any default config values found in the config.php file.116  * This can be handy as it permits you to share one application between117  * multiple front controller files, with each file containing different118  * config values.119  *120  * Un-comment the $assign_to_config array below to use this feature121  *122  */123     // $assign_to_config['name_of_config_item'] = 'value of config item';124 125 126 127 // --------------------------------------------------------------------128 // END OF USER CONFIGURABLE SETTINGS.  DO NOT EDIT BELOW THIS LINE129 // --------------------------------------------------------------------130 131 /*132  * ---------------------------------------------------------------133  *  Resolve the system path for increased reliability134  * ---------------------------------------------------------------135  */136 137     // Set the current directory correctly for CLI requests138     if (defined('STDIN'))139     {140         chdir(dirname(__FILE__));141     }142 143     if (realpath($system_path) !== FALSE)144     {145         $system_path = realpath($system_path).'/';146     }147 148     // ensure there's a trailing slash149     $system_path = rtrim($system_path, '/').'/';150 151     // Is the system path correct?152     if ( ! is_dir($system_path))153     {154         exit("Your system folder path does not appear to be set correctly. Please open the following file and correct this: ".pathinfo(__FILE__, PATHINFO_BASENAME));155     }156 157 /*158  * -------------------------------------------------------------------159  *  Now that we know the path, set the main path constants160  * -------------------------------------------------------------------161  */162     // The name of THIS file163     define('SELF', pathinfo(__FILE__, PATHINFO_BASENAME));164 165     // The PHP file extension166     // this global constant is deprecated.167     define('EXT', '.php');168 169     // Path to the system folder170     define('BASEPATH', str_replace("//", "/", $system_path));171 172     // Path to the front controller (this file)173     define('FCPATH', str_replace(SELF, '', __FILE__));174 175     // Name of the "system folder"176     define('SYSDIR', trim(strrchr(trim(BASEPATH, '/'), '/'), '/'));177 178 179     // The path to the "application" folder180     if (is_dir($application_folder))181     {182         define('APPPATH', $application_folder.'/');183     }184     else185     {186         if ( ! is_dir(BASEPATH.$application_folder.'/'))187         {188             exit("Your application folder path does not appear to be set correctly. Please open the following file and correct this: ".SELF);189         }190 191         define('APPPATH', BASEPATH.$application_folder.'/');192     }193 194 /*195  * --------------------------------------------------------------------196  * LOAD THE BOOTSTRAP FILE197  * --------------------------------------------------------------------198  *199  * And away we go...200  *201  */202 require_once BASEPATH.'core/CodeIgniter.php';203 204 /* End of file index.php */205 /* Location: ./index.php */
View Code

  21行:首先定义一个ENV

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表