Codeigniter:在加载控制器以使用& get_instance()时扩展CI_Lang类

时间:2013-06-01 12:44:23

标签: codeigniter

我想扩展我的CI_Lang类以从数据库中获取语言值。所以我创建了CI_Lang文件的副本并重写了加载和构造函数。

private $CI;
function __construct()
{
    parent::__construct();             
    log_message('debug', "Language Class Initialized");              
    $this->CI = &get_instance();
}

我在配置文件中启用了钩子并创建了一个新钩子:

$hook['post_controller_constructor'] = array(
                            'class'    => 'MY_Lang',
                            'function' => '__construct',
                            'filename' => 'MY_Lang.php',
                            'filepath' => 'hooks'
                            );

这是正常的。但是,当我尝试加载语言时,它仍然使用CI_Lang中的旧函数而不是扩展函数。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

好的,我没有使用任何钩子就找到了解决方案。

首先:我必须将MY_Lang.php放到'core'文件夹中。

第二:“ $ this-> CI =& get_instance(); ”必须放在“加载”功能中,而不是放在构造中。

希望它有所帮助,它在这里工作。 :)