入口 index.php :一些路径常量定义;
=》 CodeIgniter.php :
1. 初始化一些 system/core内的类,例如Config, Utf8, URI 和Router等,Router._set_routing 处理路由映射。
2. 全局函数get_instance,取controller实例引用,controller基类CI_Controller,伪单例,用get_instance可取得最后一个new出的controller实例(当然,框架内也只会new出一个controller实例)。
function &get_instance()
{
return CI_Controller::get_instance();
}
3. new出controller实例,执行对应方法。
4. $OUT->_display(); 将页面内容输出到浏览器。
MVC之间如何协同工作:
1. controller:
1)在构造函数内,将之前用load_class加载的对象,保存成为自己的一个属性。
2)用$this->load->model(取load的model方法)加载一个model并保存成为自己的属性,属性名为model的名字。
3)用$this->load->view(模板名,$data)加载一个view模板,extract(data), require模板文件,echo到缓冲区,最后将缓冲区的值取回给Output。
2. model
无自己的成员变量,通过__get方法取controller的同名属性扩展。