- 最后登录
- 2010-2-6
- 在线时间
- 8 小时
- 经验
- 0
- 注册时间
- 2008-8-14
- 阅读权限
- 30
- 帖子
- 25
- 精华
- 0
- 积分
- 38
- UID
- 6142

- 钢锭
- 0 块
- 弹簧
- 17 根
- 威望
- 68
|
发表于 2008-9-24 21:53:54
|显示全部楼层
既然说了每个人要写一点CodeIgniter方面的资料,我粗略的看了一下,写一点我的理解:
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();
}
[/php]
控制器是Controller继承CI_Base的[php]class Controller extends CI_Base[/php]
值得注意的是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);[/php]
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有机的结合起来,各自发挥各自的特长。
[ 本帖最后由 archerchu 于 2008-9-24 22:23 编辑 ] |
|