<?php
/**
* СодеÑÐ¶Ð¸Ñ ÐºÐ»Ð°ÑÑ SystemConfig (singleton)
*
* @package energine
* @subpackage configurator
* @author Tigrenok
* @copyright ColoCall 2007
* @version $Id: SystemConfig.class.php,v 1.5 2007/11/26 14:11:07 tigrenok Exp $
*/
/**
* ÐагÑÑÐ¶Ð°ÐµÑ xml-Ñайл конÑигÑÑаÑииsingletonsingleton ÑиÑÑемÑ
*
* @package energine
* @subpackage configurator
*/
class SystemConfig {
/**
* SystemConfig instance
*
* @var SystemConfig
* @access private
*/
private static $instance;
/**
* ÐÑÑÑ Ðº ÑÐ°Ð¹Ð»Ñ Ð¾Ñ ÐºÐ¾ÑÐ½Ñ ÑеÑвеÑа
*
* @var string
* @access private
*/
private static $systemConfigPath;
/**
* ÐаглÑÑка конÑÑÑÑкÑоÑа
*
* @return void
* @access private
*/
private function __construct() {}
/**
* Создание ÑкземплÑÑа
*
* @return SystemConfig instance
* @access public
*/
public static function run() {
if (!isset(self::$instance)) {
$c = __CLASS__;
self::$instance = new $c;
}
return self::$instance;
}
/**
* ÐÑовеÑÑÐµÑ Ñайл конÑигÑÑаÑии
*
* @return void
* @access private
*/
private function checkXMLFile() {
if (!file_exists($this->systemConfigPath)) {
throw new Exception('Файла конÑигÑÑаÑии не ÑÑÑеÑÑвÑÐµÑ ('.$this->systemConfigPath.')!');
}
elseif (!is_readable($this->systemConfigPath)) {
throw new Exception('Ðевозможно пÑоÑеÑÑÑ Ñайла конÑигÑÑаÑии ('.$this->systemConfigPath.')!');
}
}
/**
* ÐÑовеÑÑÐµÑ Ñайл конÑигÑÑаÑии
*
* @return boolean
* @access public
*/
public function getXMLFile() {
$this->systemConfigPath = str_replace(SCRIPT_NAME,'',$_SERVER['SCRIPT_FILENAME']).'/'.PATH_SYSTEM_CONFIG;
$this->checkXMLFile();
if (!function_exists('simplexml_load_file')) {
throw new Exception('ÐÑÑÑÑÑÑÑвÑÐµÑ Ð½ÐµÐ¾Ð±Ñ
одимÑй модÑÐ»Ñ PHP - SimpleXML. ÐÑодолжение ÑабоÑÑ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾.');
}
return simplexml_load_file($this->systemConfigPath);
}
/**
* ÐаглÑÑка клониÑованиÑ
*
* @return void
* @access public
*/
public function __clone() {
trigger_error('ÐлониÑование запÑеÑено законом. Ðа наÑÑÑение - кÑиминалÑÐ½Ð°Ñ Ð¾ÑвеÑÑÑвенноÑÑÑ! :)', E_USER_ERROR);
}
}
?>