代码点燃器和配置文件中的自定义库?

问题描述:

我在代码点火器库,看起来像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... 
    } 
} 
+1

谢谢卢克, 我知道这是不是创建一个配置文件的最佳选择你的图书馆,但是当你的图书馆有3个0x选项,可以设置,然后它是实用的;) – Hailwood 2011-05-23 22:17:00

快进到2013年,有人仍然有问题。所以我的情况是一样的,但稍有不同,所以我想我会尽量在一些时间保存别人。

  1. 我在扩展类后命名我的配置文件,这是错误的。 配置文件中应始终form_validation.php,(这是因为最终它交给CI_Form_validation类,这就是它预计)

  2. 感谢谁回答上面这个问题的人,我意识到,我有到config传递给父类和使用笨V2.1.3我做到了,如下所示:

    public function __construct($config = array()) 
    { 
        parent::__construct($config); 
    } 
    
+0

你从哪里拿出CI版本号? :-p – 2013-03-15 01:26:47

+0

哎呀!我的意思是v2.1.3。我在看我的REST_Controller.php版本。我纠正了它,谢谢。 – 2013-03-15 11:31:22