如何在CodeIgniter的“核心”文件夹中加载自定义配置文件


How to load custom config file in CodeIgniter's "core" folder

我想通过创建一个文件来扩展默认的CodeIgniter的类CI_Lang /core/MY_Lang.php,并且在该文件中我需要加载一个自定义配置文件:

class MY_Lang extends CI_Lang {
    var $CI;
    // Default langs
    var $languages = array(
        'en' => 'english',
        'fr' => 'french'
    );
    public function __construct(){
        parent::__construct();
        global $CFG;
        $this->CI  =& get_instance(); // NOT WORKING
        // Load custom config file from /config/languages.php
        $this->languages = $this->CI->config->item('languages');
    }
}

/config/languages.php自定义配置文件:

$config['languages'] = array(
    'en' => 'english',
    'fr' => 'french',
    'ru' => 'russian',
    'sk' => 'slovak'
);

每当我打电话get_instance - 我都会收到一个错误,告诉我Fatal error: Class 'CI_Controller' not found in D:'wamp'www'ci2exp6'system'core'CodeIgniter.php on line 233

拜托,有人可以澄清我的代码中有什么问题吗?

在核心库内部,您需要按如下方式调用它:

$CFG =& load_class('Config', 'core');
$CFG->load('languages', true);
$languages = $CFG->config['languages'];
$english   = $languages['en'];
//etc...

这应该可以解决问题:)

从注释更新了配置文件:

$config['en'] = 'english';
$config['fr'] = 'french';
$config['ru'] = 'russian';
$config['sk'] = 'slovak';