Source for file SystemConfig.class.php

Documentation is available at SystemConfig.class.php

  1. /**
  2.  * Класс SystemConfig.
  3.  *
  4.  * @package energine
  5.  * @subpackage core
  6.  * @author 1m.dm
  7.  * @copyright ColoCall 2006
  8.  * @version $Id: fsource_energine_core_frameworkSystemConfig.class.php.html,v 1.1 2007/09/17 14:32:35 pavka Exp $
  9.  */
  10.  
  11. require_once 'core/framework/Object.class.php';
  12.  
  13. /**
  14.  * Предоставляет производным классам доступ к конфигурации системы.
  15.  *
  16.  * @package energine
  17.  * @subpackage core
  18.  * @abstract
  19.  */
  20. abstract class SystemConfig extends Object {
  21.  
  22.     /**
  23.      * Путь к файлу конфигурации
  24.      */
  25.     const CONFIG_DIR = 'site/';
  26.  
  27.     /**
  28.      * Имя файла конфигурации
  29.      */
  30.     const CONFIG_FILE = 'system.config.xml';
  31.  
  32.     /**
  33.      * @access public
  34.      * @static
  35.      * @var SimpleXMLElement конфигурация системы
  36.      */
  37.     public static $systemConfig;
  38.  
  39.     /**
  40.      * Конструктор класса.
  41.      *
  42.      * @access public
  43.      * @return void 
  44.      */
  45.     public function __construct({
  46.         if (!isset(self::$systemConfig)) {
  47.             if (!file_exists(self::CONFIG_DIR.self::CONFIG_FILE)) {
  48.                 /**
  49.                  * @todo вывод текста ошибки через DBWorker::_translate()
  50.                  */
  51.                 trigger_error('ERR_DEV_NO_CONFIG'E_USER_ERROR);
  52.             }
  53.             self::load();
  54.         }
  55.     }
  56.  
  57.     /**
  58.      * Загружает конфигурацию системы из файла конфигурации.
  59.      *
  60.      * @access public
  61.      * @static
  62.      * @return void 
  63.      */
  64.     public static function load({
  65.         self::$systemConfig simplexml_load_file(self::CONFIG_DIR.self::CONFIG_FILE);
  66.     }
  67.  
  68.     /**
  69.      * Возвращает значение указанного параметра конфигурации.
  70.      * Конфигурация представляет из себя дерево параметров;
  71.      * в качестве разделителя уровней дерева используется точка.
  72.      * Пример:
  73.      *     SystemConfig::_getConfigValue('database.dsn');
  74.      *
  75.      * @access public
  76.      * @static
  77.      * @param string $paramPath путь к параметру в дереве конфигурации
  78.      * @return string 
  79.      */
  80.     public static function _getConfigValue($paramPath{
  81.         $paramPath = str_replace('.''->'trim($paramPath));
  82.         eval("\$value = (string)self::\$systemConfig->$paramPath;");
  83.         return $value;
  84.     }
  85.  
  86.     /**
  87.      * Нестатический метод-обёртка над SystemConfig::_getConfigValue -
  88.      * для удобства использования внутри производных классов.
  89.      *
  90.      * @access public
  91.      * @param string $paramPath путь к параметру в дереве конфигурации
  92.      * @return string 
  93.      * @access public
  94.      * @see SystemConfig::_getConfigValue()
  95.      */
  96.     public function getConfigValue($paramPath{
  97.         return self::_getConfigValue($paramPath);
  98.     }
  99. }

Documentation generated on Mon, 17 Sep 2007 13:32:09 +0300 by phpDocumentor 1.4.0a2