如何在另一个库中加载库


How to load library within another library?

几年前有一个类似的问题,但我不太理解答案(问题链接)

我的问题如下:我创建了一个从控制器调用的库,在该库中我使用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