0

我想扩展我的 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 中的旧函数,而不是扩展函数。有任何想法吗?

4

1 回答 1

1

好的,我在不使用任何钩子的情况下找到了解决方案。

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

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

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

于 2013-06-01T13:54:59.603 回答