2014年7月3日 17:39:35
简易版:
index.php->codeIgniter.php->找到控制器类文件并include->创建实例->执行成员函数
详细版本:
浏览器请求->
index.php
包含codeIgniter.php(接下来的步骤都是在codeIgniter.php中执行)
包含system/core/common.php文件,利用里边的load_class函数加载一堆系统类,实例化,保存到静态数组中
包含sys/core/Controller.php, 将上一步加载的类对象变为超级控制器类CI_Controller的成员变量
找到URL中请求控制器类文件并include
判断该类是存在&&类名非下划线开头&&类名不和框架中的类名重复
钩子函数pre_controller
创建实例(执行构造函数)存放到变量$CI中
钩子函数post_controller_constructor
检查method是否冲突
执行该成员函数(执行action)
钩子函数post_controller
默认display函数
钩子函数post_system(系统函数执行完毕)
关闭数据库
结束