Я должен сделать это в CodeIgniter:
$this->load->model('Test_model'); $this->Test_model->....
Я хочу просто:
$this->Test_model->...
Я не хочу автозагружать все модели, я хочу загрузить модель по требованию. Как я могу добавить логику «ленивой нагрузки» в CI_Controller
? __get()
? Какую логику я должен добавить?
Заранее спасибо!
PS Пожалуйста, не путайте мой вопрос с библиотеками / моделями / etc / lzy-load CodeIgniter – у нас разные цели.
ТЕКУЩЕЕ РЕШЕНИЕ
Обновите свой CI_Controller::__construct()
( system/core/Controller/
путей system/core/Controller/
), например
foreach (is_loaded() as $var => $class) { $this->$var = ''; $this->$var =& load_class($class); } $this->load = ''; $this->load =& load_class('Loader', 'core');
Затем добавьте новый метод в класс CI_Controller
public function &__get($name) { //code here from @Twisted1919's answer }