用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4047|回复: 5
收起左侧

[视图] helper怎样注入到view,model中去的?

[复制链接]
发表于 2010-4-20 20:36:41 | 显示全部楼层 |阅读模式
本帖最后由 navy92f 于 2010-4-20 21:35 编辑

我看源码的时候看到 控制器的一些成员变量 会被注入到模型中去
但是helper是怎样注入到view,model中去的呢?
看loader源码helper那里只是简单的一个include,而且是在控制器中。
我看到超类的一些成员变量 是由这里导入视图的:
-----------------------------------------------------------------------------------------------------
// This allows anything loaded using $this->load (views, files, etc.)
// to become accessible from within the Controller and Model functions.
// Only needed when running PHP 5

if ($this->_ci_is_instance())
{
$_ci_CI =& get_instance();
foreach (get_object_vars($_ci_CI) as $_ci_key => $_ci_var)
{
if ( ! isset($this->$_ci_key))
{
$this->$_ci_key =& $_ci_CI->$_ci_key;
}
}
}

这是在load一个视图时,把超类的所有成员注入到视图中去的源码。
------------------------------------------------------------------------------------------------------------
那么helper是怎么到视图中去的呢?
 楼主| 发表于 2010-4-21 07:43:52 | 显示全部楼层
又是自问自答了 一觉睡过之后有点明白了(这个问题很简单,是php基础知识,汗)

之所以问这个问题 是因为对函数的作用域没有理解吧

应该是这样的 loader中使用load加载一段函数文件 也就是声明了一个函数

而这个函数的作用域是全局的 所以全局内可见 这样不论是m,v,c都可以用了

只要先加载后使用就可以了
发表于 2010-4-21 09:41:26 | 显示全部楼层
楼主理解的没错,实际上就是简单的 include 而已。
 楼主| 发表于 2010-4-21 12:41:42 | 显示全部楼层
我对函数的作用域没理解好 所以才这样问
发表于 2010-4-25 20:28:20 | 显示全部楼层
呵呵 我也是新手,多多学习
发表于 2010-7-9 21:22:39 | 显示全部楼层
所有的框架还不就是一个include

本版积分规则