php ci框架分析,CI框架详解

CodeIgniter 是一个小巧但功能强大的 PHP 框架,当前下载包2.6M,作为一个简单而“优雅”的工具包,适合开发者们建立功能完善的 Web 应用程序。

1 CI应用程序流程图

下图说明了整个系统的数据流程:

e8e309941100

CodeIgniter 程序流程

index.php 文件作为前端控制器,初始化运行 CodeIgniter 所需的基本资源;

Router 检查 HTTP 请求,以确定如何处理该请求;

如果存在缓存文件,将直接输出到浏览器,不用走下面正常的系统流程;

在加载应用程序控制器之前,对 HTTP 请求以及任何用户提交的数据进行安全检查;

控制器加载模型、核心类库、辅助函数以及其他所有处理请求所需的资源;

最后一步,渲染视图并发送至浏览器,如果开启了缓存,视图被会先缓存起来用于 后续的请求。

2 CI框架源码架构

主要有三个目录

1 > application目录:用于开发者编写相应的配置以及逻辑处理,开发者只需在这个目录下添加自己需要的开发文件。

2 > system目录:框架的系统库,里面包括核心库,类库,辅助类库,数据库等。

3 > user_guide:用户手册。

e8e309941100

image.png

3 CI框架运行流程

e8e309941100

ci2.png

1 入口文件index.php, 定义环境常量ENVIRONMENT ,路径常量BASEPATH,APPPATH,VIEWPATH,引入核心库system/core下的 CodeIgniter.php文件

2 初始化核心库system/core里的类库,引用配置文件,错误处理,钩子函数

{

benchmark: "Benchmark",

hooks: "Hooks",

config: "Config",

log: "Log",

utf8: "Utf8",

uri: "URI",

router: "Router",

output: "Output",

security: "Security",

input: "Input",

lang: "Lang",

loader: "Loader"

}

3 钩子函数五个:

pre_system 在系统执行的早期调用,这个时候只有 基准测试类 和 钩子类 被加载了, 还没有执行到路由或其他的流程。

pre_controller 在你的控制器调用之前执行,所有的基础类都已加载,路由和安全检查也已经完成。

post_controller_constructor 在你的控制器实例化之后立即执行,控制器的任何方法都还尚未调用。

post_controller 在你的控制器完全运行结束时执行。

post_system 在最终的页面发送到浏览器之后、在系统的最后期被调用。

4 实例化 CI_Controller 类

function &get_instance()

{

return CI_Controller::get_instance();

}

路由类Router 解析url获取请求的 controller控制器、method方法 以及参数,加载application/config配置文件中 相应的 librays 类库、 helper辅助函数 及 DB 库,也可添加model类,执行方法,渲染html页面

5 加载CI 类库system/libraries/和自定义类库application/libraries

$this->load->library('class_name');

$this->load->library('form_validation'); //加载 表单验证类库

类库参考

6 加载系统辅助函数 system/helpers 和自定义辅助函数 appliation/helpers

$this->load->helper('name');

$this->load->helper('url'); //加载 URL 辅助函数 ,它的文件名为 url_helper.php

$this->load->helper(

['helper1', 'helper2', 'helper3']

); //加载多个辅助函数

辅助函数参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值