我經過一番輸入/指導..我有一個使用中央配置註冊表,如下所示的應用程序..配置註冊表 - 如何實現
應用解析爲INI文件config目錄,並設置陣列到使用文件的索引,以及在需要時單配置變量的名稱的類..
我可以看到所產生的,包括了幾個問題:文件之間
- 名稱衝突和VAR內設置劇本
無法拉動嵌套數組變量導致以下代碼:
$ databases = config :: get('database'); $ actual_record = $ databases ['default'];
我很想爲嵌套值添加第二個get參數,但是如果我需要拉第三或第四級值,未來會發生什麼。
class config
{
private static $registry;
/**
*
*/
private function __construct() {}
/**
*
*/
public static function get($key)
{
if (isset(self::$registry[$key])) return self::$registry[$key];
else return FALSE;
}
/**
*
*/
public static function set($key, $value, $overwrite = FALSE)
{
// Does the variable already exist?
if (isset(self::$registry[$key]) && $overwrite === FALSE)
throw new Exception();
self::$registry[$key] = $value;
}
}
在此先感謝您的幫助..
您可以將每個條目封裝到一個對象中,該對象具有用於再次檢索值的方法。 '配置:: getNested( '數據庫') - >獲取( '默認')'。或者,如果可能的話不嵌套它們呢?如何將它們與點分開? 'config :: get('database.default')' – Dan 2012-02-05 20:26:34
這可能是個愚蠢的問題,但是如何將database.default表示法轉換爲數組調用? – Lee 2012-02-05 21:10:39
標記標識符並將其分解爲點。如果你沒有一個點,這是一個普通的調用,否則,在第一個點後面的參數指定的字段名稱和第一個點後面的參數指定的字段等字段中的數組。如果你喜歡這個想法,我可以在答案中發佈一些代碼。 – Dan 2012-02-05 21:31:17