通过前面几节的内容,我们从零开始搭建了一个非常方便的MVC框架,理解了 CodeIgniter 框架最核心的部分.然而一个框架的便利不仅仅在于提供一个MVC就可以了,它还必须具有较高的扩展性.下面将从 CodeIgniter 的官方文档中的顺序一步一步充实我们这个“丑陋” 的框架. 本课将实现 CodeIgniter 类库加载的模式,对应于http://codeigniter.org.cn/user_guide/general/libraries.html 1. library 函数 首先类库加…
在完成了CI框架的类库扩展后,很自然我们就会想到函数库的扩展.函数库的扩展在 CI 中称为 helper 函数与类有不同的地方,它不能继承,只能覆盖或者添加新的函数,或者直接完全新定义的一组函数. 由于扩展的方式与之前非常类似,下面直接用代码进行介绍 /** * Loader Helper * * This function loads the specified helper file. * * @param mixed * @return void */ public function he…
上一节简单实现了 CI 的类库扩展模型,所以 _ci_load_class 和 _ci_init_class 写的不是很完备.根据上节课的分析,当 system/libraries 目录下存在 Email.php, 然后在 application/libraies 目录下存在 My_Email.php 时就可以实现扩展类库的功能.除了扩展之外,我们还需要: 1)直接覆盖原始类 2)完全自定义类 很简单,按照约定,当不存在MY_开头的类库文件,加载类库的情况必定属于以上两种,如下所示 // 直接加…
http://blog.csdn.net/yanhui_wei/article/details/25803945 一.大纲 1.codeigniter框架的授课内容安排 2.codeigniter框架的简介 |-----关于框架的概念 |-----使用CI框架的好处 |-----为什么选择CI框架 3.codeigniter框架的具体安装步骤 |-----官网下载:http://www.codeigniter.com/ |-----httpd.conf配置文件中rewrite重写机制的开启 |-…
NO1.学习要点: 一.CodeIgniter 框架的简介 二.CodeIgniter 框架的安装 三.CodeIgniter 框架的目录结构分析 四.CodeIgniter 框架是如何工作的? 五.CodeIgniter 框架中的控制器.视图.模型及数据库操作 六.CodeIgniter 框架中辅助函数.类库.适配器的学习 七.……  注: CI官方用户指南手册:http://codeigniter.org.cn/user_guide/toc.html PHP点点通CI源码分析:http://…
1. 控制器将模型类获得的数据,传递给视图进行显示,所以视图必须负责接收数据,另外重要的一点是当模型和视图分开后,多个模型的数据可以传递给一个视图进行展示,也可以说一个模型的数据在多个不同的视图中进行展示.所以CodeIgniter 框架视图的接口有两个重要参数, public function view($view, $vars = array(), $return = FALSE) $view 即使加载哪一个视图,$vars 即是传入的数据, $return 即表示是直接输出还是返回(返回可…
CodeIgniter 框架采用MVC模式,而MVC模式中起纽带作用的就是C(控制器),在控制器的中通过加载模型获得数据,将数据传到视图中进行展示.本课将实现在控制器中加载模型. 1. 控制器的实现 CodeIgniter 中控制器的作用很强大,通过继承CI_Controller 类就可以 $this->input 获得Input类的实例,其模型的调用方法是 $this->load->model('model'), 之后就可以通过 $this->model_name->调用相…
我们使用CodeIgniter 框架最主要是想利用其 MVC 特性,将模型.视图分开,并通过控制器进行统一控制.在尝试实现 MVC 模式之前,我们将实现其中一个对程序结构非常有用的技巧,就是 load_class 函数. 在上一课中,我们用面向对象的方法大大简化了程序的结构,将主要工作放在两个类中进行 ,URI 和 Router 类. 但是在 Router 类的构造函数中为了获得 uri 的实例,我们使用了 global 关键字,如下所示: class CI_Router { ... funct…
前面两篇文章为了重点突出 CodeIgniter 框架的原理,程序的结构很乱,有很多全局变量,在这一课中我们采用面向对象的方法对原先代码进行重构. 到目前为止,程序主要完成的就是 URL 分析,并根据配置文件进行路由转换,也就是说我们这里有两个对象,分别处理 URL 分析和路由转换. 1. URL 分析 URL 分析最主要的两个函数是 detect_uri 和 explode_uri ,考虑到 路由的需要,URL 类包含的成员变量有 segments 数组 原始URL的分段信息 rsegment…
CodeIgniter 框架最显著的特征就是 MVC 模式,它的做法就是提取 url 中的'分段', 映射到某个类的某个方法,从而由该方法来输出最终显示的页面内容.那么我们第一课中就是实现一个这样的原型框架. 1. 新建 index.php 文件 2. 提取 uri /** * -------------------------------------------------------------------- * 获取 uri ,并通过 uri 调用相应的方法 * -------------…