codeigniter.php,CodeIgniter.php在做什么
CodeIgniter.php是CodeIgniter框架的核心,读懂这个文件,就算读懂CI了。
index.php接受用户请求后,就直接交给这个文件来处理。它首先初始化了一些系统运行必须的类库,如Benchmark、Hooks、Config、URI、Router、Output等等。
之后,108行到114行代码,用来显示静态文件,如果网站中有使用cache,这里就会直接到cache目录下读静态文件并返回。这可以称做是CI支持全站静态吧,关于其详细实现 ,以后再进行分析。
122-123载入两个类Input和Language
148行载入控制器类,打开system/library/Controller.php,发现这个类继承自CI_Base,而CI_Base唯一的作用就是返回自己的实例,我们在实际使用时,是使用get_instance方法来调用 CI_Base类的get_instance方法取得CI_Base类的实例 ,因为controller是继承自CI_Base,所以,使用get_instance其实是返回了一个当前访问的controller的实例,相当于我们自己实际的控制器里的$this变量了。
153-161行中,路由类实例$RTR会根据当前的URL分析处理请求所需要的控制器及方法,然后引入。如果找不到就报错。
后面的代码也很简单
$class = $RTR->fetch_class();
$method = $RTR->fetch_method();
这两句话找到了处理请求的类和方法,
$CI = new $class();
这句话,实例化这个类
最后,这句话:
call_user_func_array(array(&$CI, $method), array_slice($URI->rsegments, 2));
这个函数算是KEY POINT了!它把请求交给控制器和方法来处理,也是我们需要实现的部分。
调用这个方法,并把URL后面的参数传进去。
最后几句,关数据库连接。整个执行流程就是这么回事,中间穿插着一些_call_hook函数,这是CI为了实现插件机制,这跟WORDPRESS的插件原理一样,_call_hook函数的参数可以叫做是挂载点,比如pre_system是系统刚开始执行时的挂载点。_call_hook函数会在配置文件里找到挂载在pre_system下的函数,分别执行。
codeigniter.php,CodeIgniter.php在做什么相关推荐
- php ci框架开发手册下载,php敏捷开发codeigniter框架-CodeIgniter教程(中文手册)pdf格式免费完整版-东坡下载...
这既是一份CodeIgniter教程,也是一份不可多得的CodeIgniter中文手册,更具体一点来说,它其实是<php敏捷开发codeigniter框架>,如果你需要一份这样的codei ...
- php codeigniter安全,CodeIgniter安全相关设置汇总
CodeIgniter框架自身提供了一些安全设置如针对XSS和CSRF攻击的防范,针对SQL注入攻击的防范等. 就配置文件而言: 在application/config/config.php中 $co ...
- 使用 CodeIgniter 框架快速开发 PHP 应用(一)
使用 CodeIgniter 框架快速开发 PHP 应用(一) 原文:使用 CodeIgniter 框架快速开发 PHP 应用(一) 对 CodeIgniter 的介绍 大多数PHPer都想写出运行状 ...
- CodeIgniter 框架
1.什么是框架: 框架就是一套提供基本功能组件,并做了安全控制,使程序员的工作重点放在业务逻辑上面,框架规范了编程规则,程序员可以基于这套规则进行功能组件扩展.减少代码的编写量 2.什么是Cod ...
- CodeIgniter 框架分析
2019独角兽企业重金招聘Python工程师标准>>> 入口文件 入口文件主要完成下列工作: 1) 指定 CodeIgniter 框架所在目录: 2) 定义 APPPATH ...
- codeigniter php 版本,PHP框架CodeIgniter 2.0.0版本发布
[IT168 资讯]2月10日消息,近日,PHP框架CodeIgniter 2.0.0版本发布.CodeIgniter是一个小巧但功能强大的 PHP 框架,作为一个简单而"优雅"的 ...
- 《微信公众平台与小程序开发——从零搭建整套系统》第5章 基于CodeIgniter的微信公众平台开发框架
第5章 基于CodeIgniter的微信公众平台开发框架 本章将介绍一个PHP框架-CodeIgniter,并在此框架基础上做简单的改造以适应后续的扩展,并新增了微信公众号开发相关的SDK. 5.1 ...
- 使用codeigniter_使用CodeIgniter探索面向方面的编程,第2部分
使用codeigniter In the previous part of this series we learned what Aspect Oriented Programming (AOP) ...
- mvc路由原理 php_PHP实战002:CodeIgniter安装和入门使用
CodeIgniter简介 CodeIgniter 是一个基于MVC框架的PHP轻量级框架(开源),它的目标是让你能够更快速的开发,它提供了日常任务中所需的大量类库,以及简单的接口和逻辑结构.通过减少 ...
- php ci框架下载,CodeIgniter框架的下载及安装,codeigniter框架_PHP教程
CodeIgniter框架的下载及安装,codeigniter框架 CodeIgniter 是一套给 PHP 网站开发者使用的应用程序开发框架和工具包.初次学习Php,网上搜了很多php框架,最后选择 ...
最新文章
- compass reset和layout [Sass和compass学习笔记]
- JVM工作原理和特点
- SAP UI5 应用启动(bootstrap)过程单步调试
- WordPress 多媒体库添加分类和标签支持
- 橡皮擦的英语_从填字涂鸦到英语启蒙,家长口中的儿童版“秘密花园”涂色游戏测评【玩具测评】...
- PAT乙级(1031 查验身份证)
- HDU2091 空心三角形【打印图案】
- 2010年年终“飞”的总结
- set列表对象去重_set去重应用
- 【微信小程序】微信Web开发者工具下载及安装
- java quartz 每月1号执行_Quartz 每月1号 执行规则表达式
- html返回到处乱跑,电脑鼠标乱动不受控制(鼠标到处乱跑不听使唤)
- pycharm安装redis
- 游戏逆向 修改植物大战僵尸阳光值
- 查询Microsoft Visual C++ Debug Library窗体并自动点击忽略按钮的小工具代码
- 护眼台灯哪种光源好?光源最舒适的护眼台灯推荐
- 计算机第二道密码怎么取消,电脑设置两道密码的具体方法
- 公安联勤指挥调度实战应用系统软件平台解决方案
- 继续中文,晒代码,真的没什么新意,好在得意自满!
- 【七夕表白网站】程序员表白网页合集(100套) HTML+CSS+JS