我有控制器:
应用/控制器/ bob.php
然后在我在控制器Bob.php中使用的库中,我有这段代码:
$CI =& get_instance();
echo get_class($CI);
所以我打开网址“domain.com/bob”,当没有安装HMVC时,我得到了正确的回声,这是
我一安装HMVC,结果就是:
基本上,这意味着我不能使用在Bob中声明的$ CI-> someVariableINeed,因为它在CI中不存在。请注意,$ CI-> load-> helper(),$ CI-> load-> view(),..都可以正常工作。我试过了:
class Bob extends CI_Controller
和
class Bob extends MX_Controller
但它仍然无效。我一直在寻找24小时并没有找到任何东西,希望有人知道这一点。我知道这不是一种非常干净的方式来访问类的成员,但是这个问题是现有项目的简化,有数十万行代码,所以我无法改变这个,库HAS来访问这些成员变量至少我改变整个项目。
答案 0 :(得分:1)
哦,是的!!我是男人,我修好了!考虑可能创建我自己的“get_instance()系统,这就是我所做的:
class MY_Controller extends MX_Controller
{
public static $instance;
function __construct()
{
self::$instance || self::$instance =& $this;
...
}
}
然后在图书馆,帮助者或任何时髦的地方你需要使用它:
$CI =& MY_Controller::$instance;
请注意,如果您自动加载库,MY_Controller :: $ instance将无法正常工作,如果它位于库的__construct()中,因为MY_Controller尚未定义