【问题标题】:How to load library within another library?如何在另一个库中加载库?
【发布时间】:2012-08-23 15:28:10
【问题描述】:

几年前有一个类似的问题,但我不太明白答案(link to the question

我的问题如下:我创建了一个从控制器调用的库,并且在该库中我使用了 CodeIgniter 提供的图像处理函数。但这显然是一个图书馆。从控制器来说没有问题:$this->load->library('image_lib', $config); $config 变量当然具有创建图像的参数。问题是:如何从另一个库中调用该库(并传递 $config 数组)?

提前致谢。

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    在帮助程序和其他库中如何做到这一点:

    $ci =& get_instance();
    
    $config = array(
        //...
    );
    $ci->load->library('image_lib', $config);
    
    $ci->image_lib->whatever();
    

    您在这里所做的是获取 CodeIgniter 单例对象的实例并使用它,因为库不能使用 $this,因为库中使用的 $this 指向它们自己。简单地做所有你平常的事情,但使用$ci->而不是$this->

    【讨论】:

      【解决方案2】:

      您的 $this 变量将丢失它的 CodeIgniter 资源,要使用 CodeIgniter 资源,您必须创建它的另一个实例 get_instance();

      $CI =& get_instance();
      

      现在您可以像使用 $this 一样使用 $CI

      您可以在“利用您的库中的 CodeIgniter 资源”http://codeigniter.com/user_guide/general/creating_libraries.html 下阅读更多相关信息

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-12
        • 2018-07-12
        • 2019-04-17
        • 1970-01-01
        • 2012-05-25
        • 2018-12-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多