代码点燃器和配置文件中的自定义库?
我在代码点火器库,看起来像class MyClass($options = array())
代码点燃器和配置文件中的自定义库?
该文件是Myclass.php
我有一个文件(config/Myclass.php
),看起来像
$Myclass = array(
'something' => 'value',
'another' => 'value'
);
而且我认为他应该通过$Myclass
阵列在我什么时候初始化我的课,但显然不是?
我需要做些什么来解决它?
AH我找到了答案,
您的配置文件内的数组必须被称为$config
。
该文件的名称也必须是小写表示库文件名。
e.g
LIB文件:Somelibrary.php
LIB目录:class Somelibrary($options = array()){...
CONF文件:somelibrary.php
CONF内容:$config = array('something' => 'value');
与此
通常这样做的方式是,您传递一组您希望覆盖的选项,或者传递任何内容以使用默认值。
var myObject = new MyClass(); // default settings
var myObject = new MyClass(array('something' => 'value2')); // override only "something"
老实说,我不会在没有很好理由的情况下在配置文件中创建自己的文件;相反,只是把默认的类定义,然后覆盖在你的构造:
class MyClass {
var $default_options = array(
'something' => 'value',
'another' => 'value',
);
var $options = array();
function MyClass($override_options = array())
{
$this->options = array_merge($this->default_options, $override_options);
// your code here...
}
}
快进到2013年,有人仍然有问题。所以我的情况是一样的,但稍有不同,所以我想我会尽量在一些时间保存别人。
我在扩展类后命名我的配置文件,这是错误的。 配置文件中应始终form_validation.php,(这是因为最终它交给CI_Form_validation类,这就是它预计)
-
感谢谁回答上面这个问题的人,我意识到,我有到config传递给父类和使用笨V2.1.3我做到了,如下所示:
public function __construct($config = array()) { parent::__construct($config); }
你从哪里拿出CI版本号? :-p – 2013-03-15 01:26:47
哎呀!我的意思是v2.1.3。我在看我的REST_Controller.php版本。我纠正了它,谢谢。 – 2013-03-15 11:31:22
谢谢卢克, 我知道这是不是创建一个配置文件的最佳选择你的图书馆,但是当你的图书馆有3个0x选项,可以设置,然后它是实用的;) – Hailwood 2011-05-23 22:17:00