我必须在 CodeIgniter 中这样做:
$this->load->model('Test_model');
$this->Test_model->....
我只想:
$this->Test_model->...
我不想自动加载所有模型,我想按需加载模型。如何添加“延迟加载”逻辑CI_Controller
?__get()
? 我应该添加什么逻辑?
提前致谢!
PS 请不要将我的问题与CodeIgniter 延迟加载库/模型/等混淆- 我们有不同的目标。
当前解决方案
更新你的CI_Controller::__construct()
(路径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
}