![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CI框架源码剖析
朗润
这个作者很懒,什么都没留下…
展开
-
CI框架源码解析3全局函数库文件Common.php
Common.php定义一系列全局函数 全局函数的定义方式为 if(! function_exists(fun_name)){}这样做可以防止定义重名函数,我们自己在封装全局函数时候也可以使用这种方式 1、is_php() 判断当前php版本是否是$version以上的static 避免每次调用都去version_compare() ...原创 2019-01-24 23:18:51 · 222 阅读 · 0 评论 -
CI框架源码解析8地址解析类文件URI.php
URI类主要处理地址字符串,将uri分解成对应的片段,存到segments数组中。querystring分解后存到$_GET数组,ROUTER路由类在之后的解析路由动作中,也主要依靠URI类的segments属性数组来获取当前上下文的请求URI信息。 $config['uri_protocol']配置不但决定以哪个函数处理URI,同时决定了从哪个全局变量里获取当前上下文的uri地址。对应关...原创 2019-01-30 11:03:34 · 180 阅读 · 0 评论 -
CI框架源码解析7编码类文件Utf8.php
直接上源码 <?phpdefined('BASEPATH') OR exit('No direct script access allowed');/* * 编码类文件Utf8.php */class CI_Utf8 { /* * 构造函数 检测是否支持utf8 */ public function __construct() { ...原创 2019-01-28 17:54:52 · 169 阅读 · 0 评论 -
CI框架源码解析6配置类文件Config.php
先对CI框架配置类config.php的类结构和功能做一个简要的介绍 config:Config类中的配置项都存在$config数组中is_loaded:记录已经加载的配置_config_paths:配置路径__construct():加载默认config 如果base_url不存在则根据$_SERVER给个默认设置load():加载自定义文件item():获取加载项...原创 2019-01-28 16:56:09 · 353 阅读 · 0 评论 -
CI框架源码解析5钩子类文件Hooks.php
CI框架可以实现在不改变框架核心文件的基础上修改或者添加核心运行功能(比如重写缓存 输出等),这就是Hooks。主要作用是CI框架下扩展base_system,它的主要作用是在CI启动时运行一些开发者定义的一些方法,来实现一些特定的功能。钩子是什么呢?我们可以这样理解: 1、钩子是一种事件驱动模式,它的核心自然是事件(CI框架中pre_system,pre_controlle...原创 2019-01-28 11:18:43 · 330 阅读 · 0 评论 -
CI框架源码解析2核心引导文件CodeIgniter.php
CodeIgniter.php是引导文件,整个框架的核心,其实把这个文件运行一遍,整个CI应用就完成了一次完整的运行流程。加载组件,引入很多外部文件。CodeIgniter.php文件主要完成如下几个工作 1、加载框架常量、函数库以及框架初始化2、加载核心类组件3、路由的设置与判断4、解析请求的类并调用请求的方法5、输出 1、加载框架常量、函数库以及框架初始化 ...原创 2019-01-16 15:47:35 · 316 阅读 · 0 评论 -
CI框架源码解析1入口文件index.php
index.php作为CI框架的入口文件,自然从此开始。index.php完成四项工作 1、设置框架应用的环境状态2、配置系统、应用、视图等程序目录以及得到路径3、系统、应用、视图等程序目录正确性验证4、载入core/CodeIgniter.php框架核心文件,启动框架 1、设置框架应用的环境状态 针对不同的环境场景状态产生不同级别的错误报告...原创 2019-01-15 20:57:37 · 1361 阅读 · 0 评论 -
CI框架源码解析4基准测试类文件Benchmark.php
基准测试类文件Benchmark.php通过前面几篇的分析,我们已经了解到:CI框架中核心流程的核心功能都是由不同的类组件来完成的。这些类组件 类似一个一个单独的模块,不同的模块完成不同的功能,各模块之间可以相互调用,共同构成CI框架的核心骨架 Benchmark.php是CI框架中第一个加载的core类组件,因此我们的分析首先从该类组件开始。Benchmark的含义非常明确,这是一个...原创 2019-01-25 11:48:55 · 223 阅读 · 0 评论 -
CI框架工作原理浅析
CI是一个流行的的PHP框架,小巧但功能强大,简洁轻量同时具有很强的扩展性。另一方面,CI却没有与时俱进,并不支持PHP5.3之后的一些特性,导致它相对更适合较老一些的项目。虽然如此,CI仍是一个优秀的框架,而且它本身内核较小,源码优雅,适于学习 CI的工作流程图index.php 文件作为前端控制器,初始化运行 CodeIgniter 所需的基本资源; Router 检...原创 2019-01-15 11:06:04 · 1837 阅读 · 0 评论 -
CI框架源码解析9路由类文件Router.php
CI框架路由类将URI射影到对应的控制器和方法,大量代码处理的是自定义路由,功能如下: (1)支持自定义路由规则(2)支持回调函数(3)支持使用HTTP动词 1、 构造函数 __construct()/* * 构造函数 */ public function __construct($routing = NULL) { $this->co...原创 2019-01-30 15:39:27 · 429 阅读 · 0 评论