无聊,决定水一把。
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
新闻热点
疑难解答