2013-09-07 3 views
0

Я пытаюсь вызвать библиотеку A внутри библиотеки B в конструкторе библиотекиB. Я знаю, что я могу сделать:codeigniter library in library issue

$CI =& get_instance(); 
$CI->load->library('A'); 
$CI->A->someFunc() 

Однако я не могу назвать $CI->A->someFunc(), не возбуждая его с $CI =& get_instance();$CI->load->library('A'); в любой функции в B Я пытаюсь получить доступ к someFunc();. В других ситуациях я мог бы просто запустить его в конструкторе $this->load->model('somemodel'); и вызвать модель в любой функции внутри класса с помощью $this->load->someFunc();. Как достичь такой же функциональности, не переписывая блок кода выше и выше в каждой функции, которую я хочу использовать?

ответ

0

Я не уверен на 100%, это то, о чем вы спрашиваете (ваш вопрос запутан), но вы можете сохранить экземпляр CI как свойство, а затем получить доступ к нему из любого места вашего класса.

class My_library { 

    protected $CI; 

    public function __construct() 
    { 
     $this->CI =& get_instance(); 

     $this->CI->load->library('other_library'); 
    } 

    public function someMethod() 
    { 
     // Use the library (and the CI object) via the CI property. 
     $var = $this->CI->other_library->anotherMethod(); 
    } 
} 
+0

да, извините, мой вопрос был немного запутанным. это работало как шарм. – Alex