我有财务主任:
应用程序/控制器/bob.php
然后,在控制器Bob.php中使用的库中,我有以下代码:
$CI =& get_instance();
echo get_class($CI);因此,我打开url "domain.com/bob",在没有安装HMVC时得到正确的回声,即
一旦我安装了HMVC,结果是:
因此,基本上,这意味着我不能使用$ CI ->在Bob中声明的某种someVariableINeed,因为它在CI中不存在。注意$CI->load->helper(),$CI->load->view(),.不过,他们都在工作。我试过:
class Bob extends CI_Controller和
class Bob extends MX_Controller但还是没用。我已经搜索了24小时,没有发现任何东西,希望有人知道这件事。我知道这不是一种访问类成员的非常干净的方法,但是这个问题是一个有数十万行代码的现有项目的简化,所以我不能改变这一点,库必须访问这些成员变量,至少我改变了整个项目。
发布于 2013-05-08 22:36:57
哦,是的!我是那个人,我修好了!考虑到可能创建“自己的”get_instance()系统,下面是我所做的:
class MY_Controller extends MX_Controller
{
public static $instance;
function __construct()
{
self::$instance || self::$instance =& $this;
...
}
}然后,在图书馆、帮助者或任何你需要使用的时髦地方:
$CI =& MY_Controller::$instance;注意,如果您自动加载一个库,如果它位于库的__construct()中,则MY_Controller::$instance将无法工作,因为MY_Controller尚未定义为
https://stackoverflow.com/questions/16433210
复制相似问题