kycool 发表于 2012-6-24 18:06:47

超级对象

本帖最后由 kycool 于 2012-6-24 18:14 编辑

诚心请教:1 超级对象可以应用在哪些地方【不包括用get_instance()方法获得的对象】
2 超级对象在视图和模型中是否可以加载任意的辅助类,库
3 每个控制器都有一个lodar对象,即我们可以在控制器中使用此对象加载任意的库和辅助函数,
那么:
       这个对象是通过继承CI_Controller获得的还是框架加载时自动生成的?
4 超级对象是属于哪一个类?   有些资料说超级对象是继承CI_Controller,但是如果超级对象是继承CI_Crotroller的话,为什么视图和模型又可以使用超级对象呢,虽然超级对象是全局对象,当我写模型类的时候,例如
   class TestModel extends CI_Model{
    ....................................
    .....................................
   }
此时此类是一个模型类,没有继承CI_Controller,那么超级对象是怎么注册到这个模型中的?
谢谢,我理解能力有限,看了很多的资料,还是不甚明白,诚求各位大牛请教


Hex 发表于 2012-6-25 11:46:19

1. 所谓的超级对象,就是用 get_instance() 获得的对象,这里的超级对象,实际上就是当前控制器的实例,因为 CI 是单例模式的框架,所以 CI 里只有一个控制器实例。
2. 当然可以加载。
3. loader 实例是在控制器实例化的时候动态添加到控制器实例中的,代码参见 system/core/Controller.php
4. 在 2.0.0 以后的版本中,超级对象就是控制器的实例。视图可以使用 loader 那也是动态添加进去的,在 CI 中很多都是动态添加的,要注意 PHP 是动态语言。模型也是在模型实例化的时候,动态把超级对象的所有东西添加到模型中的。代码参见 system/code/Model.php

kycool 发表于 2012-6-25 12:15:33

Hex 发表于 2012-6-25 11:46 static/image/common/back.gif
1. 所谓的超级对象,就是用 get_instance() 获得的对象,这里的超级对象,实际上就是当前控制器的实例,因 ...

谢谢老大指教,真心感谢
页: [1]
查看完整版本: 超级对象