ci/core/CodeIgniter.php是ci框架的核心处理文件,其处理流程如下:
1 require了3个文件
BASEPATH
core/Common.php
core/Compat.php
APPPATH
config/constants.php
2 加载Benchmark,并打时间戳
3 加载Hooks,并调用钩子pre_system
4 加载Config、URI、Input和Language
5 加载并解析Router
6 加载并输出缓存Output
7 require系统controller
BASEPATH
core/Controller.php
8 定义get_instance()() 为 CI_Controller::get_instance()
9 require自定义的controller
APPPATH
core/MY_Controller.php
10 require路由解析后的controller
APPPATH
controller/路由目录/路由class.php
11 调用钩子pre_controller
12 创建controller
13 调用钩子post_controller_constructor
14 调用controller的action方法
15 调用钩子post_controller
16 渲染输出
17 调用钩子post_system
18 关闭db