как получить доступ к библиотеке в CI HMVC?

мой текущий контроллер & библиотеки перечислены далее …

>application/
- config/
- controllers/
- ...
- models/
- modules/
- module1/
- controllers/
- Test_cont.php
- models/
- views/
- libraries
- Test_lib.php
- third_party/
- views/
- ...(other files & folders)

‘modules / module1 / controllers / Test_cont.php’ это:

class Test_cont extends MY_Controller
{
function __construct(){
parent::__construct();
}

function index(){
$this->load->library('Test_lib');
$this->Test_lib->doSomething();
}
}

Файл ‘modules / module1 / library / Test_lib.php’:

class Test_lib
{
function __construct(){
echo 'library loaded <br>';
}

function doSomething(){
echo 'it works!';
}
}

когда я иду на URL «Http: //localhost/codeigniter-3.1.3/module1/test_cont
это говорит:

---------------------------------------------------
| An Error Was Encountered                        |
---------------------------------------------------
| Unable to load the requested class: Test        |
---------------------------------------------------

Я надеюсь, что смогу заставить вас понять мою проблему, как решить эту проблему? …
(Заранее спасибо)

2

Решение

Если вы находитесь в том же модуле, вы можете загрузить библиотеку следующим образом:

function index(){
$this->load->library('Test_lib');
$this->test_lib->doSomething();
}

но если вы находитесь в другом модуле и хотите загрузить библиотеку из другого модуля, то:

function index(){
$this->load->library('module_name/Test_lib');
$this->test_lib->doSomething();
}
0

Другие решения

Имена библиотек не чувствительны к регистру. Экземпляры объекта всегда будут в нижнем регистре.

увидеть создание библиотек

function index(){
$this->load->library('Test_lib');
$this->test_lib->doSomething();
}
2

В hmvc необходимо указать имя модуля при загрузке библиотеки, модели и т. Д.

function index(){
// You don't need to use upper case when loading library only class and filename

$this->load->library('module-name/test_lib');
$this->test_lib->doSomething();

// Loading model hmvc

$this->load->model('module-name/test_model');
$this->test_model->doSomething();
}

Контроллер, если нет приложения / core / MY_Controller.php, использовать MX_Controller

Имя файла Test_cont.php

class Test_cont extends MY_Controller
{

}

Если вам нужно использовать MY_controller, убедитесь, что вы делаете это в application / core / MY_Controller.php

<?php

class MY_Controller extends MX_Controller {

}
0

наконец, я обнаружил, что внутри скрипта произошла ошибка, поэтому у меня возникли проблемы с загрузкой библиотеки, но моя библиотека загрузилась:

$this->load->library('Test_lib');
0