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

[已解决] CI如何自定义一个全局函数 来调用model???

[复制链接]
发表于 2010-3-15 22:19:47 | 显示全部楼层 |阅读模式
看到手册里说 helper 是不能访问CI资源的,
可是在使用的时候我就是想通过一个全局的函数访问CI的资源,有没有 办法?
发表于 2010-3-15 22:41:14 | 显示全部楼层
helper如果想访问CI资源也不是不可能的。
比如: $CI = & get_instance();
但并不推荐这么做,为什么呢?helper一般都是通用函数的集合,用来处理某些局部的任务,比如字符串过滤。如果是与你具体需求相关的功能,就最好放在某个controller/model/library里面。

基于你的需求,一般的做法是写一个library,然后autoload自动加载,就可以当作“全局”了。

废话一些(我通常很喜欢引申,请忍受):对于OOPHP编程来说,全局变量越少,你的程序就越“安全”,越容易控制。
 楼主| 发表于 2010-3-16 08:12:44 | 显示全部楼层
回复 2# saturn

我为什么有这个想法,因为我看到,在Controller中,都是 $this->load->view('test.php'),的方式来调用的,并且在view中也可以这样写,那是不是说,这个test.php是这个对象一部分?

我不想在test.php中用$this->load->view('header.php')的这种方式来调用,而用一个函数比如get_view('header')来达到想到的结果呢?
发表于 2010-3-16 08:21:43 | 显示全部楼层
function get_view($v,$return=false){
$CI=&get_instance();
if($return)return $CI->load->view($v,true);
$CI->load->view($v);
}
多看手册
 楼主| 发表于 2010-3-16 08:23:37 | 显示全部楼层
回复 4# visvoy

谢谢,看看手册先。

本版积分规则