CI框架源码解析2核心引导文件CodeIgniter.php

CodeIgniter.php是引导文件,整个框架的核心,其实把这个文件运行一遍,整个CI应用就完成了一次完整的运行流程。加载组件,引入很多外部文件。CodeIgniter.php文件主要完成如下几个工作

 

1、加载框架常量、函数库以及框架初始化

2、加载核心类组件

3、路由的设置与判断

4、解析请求的类并调用请求的方法

5、输出

 

1、加载框架常量、函数库以及框架初始化

 

(1)、执行前工作 判断常量

(2)、加载框架常量

(3)、加载全局函数库

 

(4)、自定义错误 异常和程序完成的函数

(5)、检测核心class是否被扩展

(6)、加载composer

 

2、加载核心类组件

 

通常,CI框架中不同的功能均由不同的组件来完成(如Log组件主要用于记录日志,Input组件则用于处理用户的GET,POST等数据)这种模块化的方式使得各组件之间的耦合性较低,从而也便于扩展。CI中主要的核心组件如下所示:

 

a) BM:指BenchMark,是CI的基准点组件,主要用于mark各种时间点、记录内存使用等参数,便于性能测试和追踪。

b) 钩子类->EXT:CI的扩展组件,用于在不改变CI核心的基础上改变或者增加系统的核心运行功能。Hook钩子允许你在系统运行的各个挂钩点(hook point)添加自定义的功能和跟踪,如pre_system,pre_controller,post_controller等预定义的挂钩点。以下所有的$EXT->_call_hook("xxx");均是call特定挂钩点的程序(如果有的话)。

c) 配置类->CFG:Config配置管理组件。主要用于加载配置文件、获取和设置配置项等。

d) utf8类->UNI:用于对UTF-8字符集处理的相关支持。其他组件如INPUT组件,需要改组件的支持。

e) URL类->URI:解析URI)参数等.这个组件与RTR组件关系紧密

f) 路由类->RTR:路由组件。通过URI组件的参数解析,决定数据流向(路由)。

g) OUTPUT类->OUT:最终的输出管理组件,掌管着CI的最终输出(海关啊)。

h) 安全类->SEC:安全处理组件。毕竟安全问题永远是一个大问题。

i) 输入及过滤类->IN:用于获取输入以及表单验证。

j) 语言类->LANG:用于设置框架语言。

 

3、路由的设置与判断

 

4、解析请求的类并调用请求的方法

call_user_func_array 调用回调函数,并把一个数组参数作为回调函数的参数,call_user_func_array 函数和 call_user_func 很相似

只是使用了数组的传递参数形式,让参数的结构更清晰。

 

5、输出

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值