2011-05-23 65 views
3

我在代碼點火器庫,看起來像class MyClass($options = array())代碼點燃器和配置文件中的自定義庫?

該文件是Myclass.php

我有一個文件(config/Myclass.php),看起來像

$Myclass = array(
    'something' => 'value', 
    'another' => 'value' 
); 

而且我認爲他應該通過$Myclass陣列在我什麼時候初始化我的課,但顯然不是?

我需要做些什麼來解決它?

回答

2

AH我找到了答案,

您的配置文件內的數組必須被稱爲$config

該文件的名稱也必須是小寫表示庫文件名。

e.g

LIB文件:Somelibrary.php
LIB目錄:class Somelibrary($options = array()){...
CONF文件:somelibrary.php
CONF內容:$config = array('something' => 'value');與此

1

通常這樣做的方式是,您傳遞一組您希望覆蓋的選項,或者傳遞任何內容以使用默認值。

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

0

快進到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

相關問題