如果想了解CI的使用,可以参考http://codeigniter.org.cn/user_guide/tutorial/index.html,非常简单。
在开始之前,首先再回忆下框架涉及的几个知识点:
1、单入口:应用程序入口。所有用户的请求都从该入口开始,作为前端控制与调度的处理器,它负责将用户请求发往对应的类和方法。
2、MVC:M(Model,业务逻辑),V(view ,视图),C(Controller,控制器)
3、路由解析Route:分析用户请求的URI,并发往对应的控制器方法进行解析。
4、钩子:理解为拦截器。在一个程序“接收请求->响应输出”的生命周期中,在不同的关键节点放入特定方法委托。如果委托的方法存在,那么就调用执行。一般应用于不改变系统核心流程的基础上,增加用户自定义行为的需求上。
5、日志。
6、缓存。可参考 浅谈代码级web缓存几个层次的实现
在开始之前,首先再回忆下框架涉及的几个知识点:
1、单入口:应用程序入口。所有用户的请求都从该入口开始,作为前端控制与调度的处理器,它负责将用户请求发往对应的类和方法。
2、MVC:M(Model,业务逻辑),V(view ,视图),C(Controller,控制器)
3、路由解析Route:分析用户请求的URI,并发往对应的控制器方法进行解析。
4、钩子:理解为拦截器。在一个程序“接收请求->响应输出”的生命周期中,在不同的关键节点放入特定方法委托。如果委托的方法存在,那么就调用执行。一般应用于不改变系统核心流程的基础上,增加用户自定义行为的需求上。
5、日志。
6、缓存。可参考 浅谈代码级web缓存几个层次的实现
7、多语言支持。
一切从CI官网的一张应用程序流程图开始- index.php 文件作为前端控制器,初始化运行 CodeIgniter 所需的基本资源;
- Router 检查 HTTP 请求,以确定如何处理该请求;
- 如果存在缓存文件,将直接输出到浏览器,不用走下面正常的系统流程;
- 在加载应用程序控制器之前,对 HTTP 请求以及任何用户提交的数据进行安全检查;
- 控制器加载模型、核心类库、辅助函数以及其他所有处理请求所需的资源;
- 最后一步,渲染视图并发送至浏览器,如果开启了缓存,视图被会先缓存起来用于后续的请求。