用户
 找回密码
 入住 CI 中国社区

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 16605|回复: 23
收起左侧

CodeIgniter 框架的简单分析

[复制链接]
发表于 2008-10-15 17:43:48 | 显示全部楼层 |阅读模式
作者: archerchu
来源: http://www.eb163.com/club/thread-1429-1-1.html


CodeIgniter 关键的核心文件是那个Loader.php,他主要定义了加载数据库配置、View、文件和类的方法。

CI的基础类是CI_Base,这里又分为PHP4、PHP5两个不同的方式,不过原理都是一样的,单例模式方法。
PHP复制代码
class CI_Base {
private static $instance;
public function CI_Base()
{
  self::$instance =& $this;
}
public static function &get_instance()
{
  return self::$instance;
}
}
function &get_instance()
{
return CI_Base::get_instance();
}
复制代码


控制器是Controller继承CI_Base的
PHP复制代码
class Controller extends CI_Base
复制代码


值得注意的是function _ci_scaffolding(),它里面主要定义了一些Scaffolding的method,你可以扩展Scaffolding的method
PHP复制代码
$method = ( ! in_array($this->uri->segment(3), array('add', 'insert', 'edit', 'update', 'view', 'delete', 'do_delete'), TRUE)) ? 'view' : $this->uri->segment(3);
复制代码


Scaffolding被称为脚手架,很难理解,其实就是定义了一些method方法,处理页面view的,在 Scaffolding里面你能找到刚才的一些默认定义。也就是说,CI可以通过Scaffolding来处理Controller、View、 Model的关系。如果需要我们可以扩展Scaffolding,让他能完成除了'add', 'insert', 'edit', 'update', 'view', 'delete', 'do_delete'更多的东西。

Model没什么说的,就是一个实体类Entity,主要对这个Entity的属性、方法进行定义的。

总结一下,CI这个框架其实就是类的继承和模版的加载把Controller、View、Model有机的结合起来,各自发挥各自的特长。
发表于 2014-12-13 15:22:36 | 显示全部楼层
看了好久了 回复一个楼主辛苦了
发表于 2017-3-8 16:44:40 | 显示全部楼层
很棒,已全部了解。
发表于 2008-10-15 17:53:35 | 显示全部楼层
Scaffolding没用过,支持下,楼主辛苦
发表于 2008-10-15 18:09:20 | 显示全部楼层
我刚下载的1.6.3,没发现这个CI_Base 这个文件啊。
在哪个目录里?
发表于 2008-10-15 18:14:10 | 显示全部楼层
原帖由 pujing 于 2008-10-15 18:09 发表
我刚下载的1.6.3,没发现这个CI_Base 这个文件啊。
在哪个目录里?



system\codeigniter\Base5,Base4
发表于 2008-10-15 18:15:46 | 显示全部楼层
是这个文件啊
hex写的是简称。

现在过去15分钟了,我看20分钟能搭建一个blog吗
发表于 2008-10-15 18:17:06 | 显示全部楼层
楼上,我看你肯定行
发表于 2008-10-26 16:51:36 | 显示全部楼层
支持一个!   
发表于 2009-1-23 13:02:30 | 显示全部楼层
嗯,不错的。支持一下
发表于 2009-4-21 16:00:03 | 显示全部楼层
每次用的$this->load->model('表名_model');  表名_model 这是自己建的吗 ??谢谢
发表于 2009-5-8 14:53:04 | 显示全部楼层
顶啊,顶啊,顶啊顶。

本版积分规则