navy92f 发表于 2010-4-20 20:36:41

helper怎样注入到view,model中去的?

本帖最后由 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是怎么到视图中去的呢?

navy92f 发表于 2010-4-21 07:43:52

又是自问自答了 一觉睡过之后有点明白了(这个问题很简单,是php基础知识,汗)

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

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

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

只要先加载后使用就可以了

Hex 发表于 2010-4-21 09:41:26

楼主理解的没错,实际上就是简单的 include 而已。

navy92f 发表于 2010-4-21 12:41:42

我对函数的作用域没理解好 所以才这样问

2009cms 发表于 2010-4-25 20:28:20

呵呵 我也是新手,多多学习

conqweal 发表于 2010-7-9 21:22:39

所有的框架还不就是一个include
页: [1]
查看完整版本: helper怎样注入到view,model中去的?