几年前有一个类似的问题,但我不太理解答案(问题链接)
我的问题如下:我创建了一个从控制器调用的库,在该库中我使用CodeIgniter提供的图像处理函数。但那显然是一个图书馆。从控制器来看,没有问题:$this->load->library('image_lib', $config);
$config变量当然有创建图像的参数。问题是:如何从另一个库中调用该库(并传递$config数组)?
提前谢谢。
以下是如何在助手和其他库中执行此操作:
$ci =& get_instance();
$config = array(
//...
);
$ci->load->library('image_lib', $config);
$ci->image_lib->whatever();
这里要做的是获得CodeIgniter singleton对象的实例并使用它,因为库不能使用$this
,因为库中使用的$this
指向自己。只需执行所有常规操作,但使用$ci->
而不是$this->
您的$thisvar将丢失其CodeIgniter资源,要使用CodeIgniterResources,您必须创建它的另一个实例get_instance();
$CI =& get_instance();
现在你可以像使用$this 一样使用$CI
您可以在"在您的图书馆中利用CodeIgniter资源"下阅读更多关于它的信息http://codeigniter.com/user_guide/general/creating_libraries.html