storeHandle)) { $this->storeHandle = new LtStoreMemory; } } public function init() { //don't removeme, I am the placeholder } public function get($key) { $storedConfig = $this->storeHandle->get($key); if ($storedConfig instanceof LtConfigExpression) { $str = $storedConfig->__toString(); if ($storedConfig->autoRetrived) { eval("\$value=$str;"); return $value; } else { return $str; } } else { return $storedConfig; } } /** * 警告 * 这里会包含两个用户定义的配置文件,为了不和配置文件里的变量名发生重名 * 本方法不定义和使用变量名 */ public function loadConfigFile($configFile) { if (0 == $this->storeHandle->get(".config_total")) { if (null === $configFile || !is_file($configFile)) { trigger_error("no config file specified or invalid config file"); } $this->conf = include($configFile); if (!is_array($this->conf)) { trigger_error("config file do NOT return array: $configFile"); } elseif (!empty($this->conf)) { if (0 == $this->storeHandle->get(".config_total")) { $this->storeHandle->add(".config_total", 0); } $this->addConfig($this->conf); } } } public function addConfig($configArray) { foreach($configArray as $key => $value) { if (!$this->storeHandle->update($key, $value)) { if ($this->storeHandle->add($key, $value)) { $this->storeHandle->update(".config_total", $this->storeHandle->get(".config_total") + 1, 0); } } } } }