12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- <?php
- class LtConfig
- {
- public $storeHandle;
- protected $conf;
- public function __construct()
- {
- if (!is_object($this->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);
- }
- }
- }
- }
- }
|