1: <?php
2: namespace Genetsis;
3: 4: 5: 6: 7: 8: 9:
10:
11: class Config {
12:
13: const CONF_VERSION = '1.4';
14:
15: public static $CONF_PATH = '';
16: public static $CACHE_PATH = '';
17: public static $LOG_PATH = '';
18:
19: public static $DEV_LOG_LEVEL = '';
20: public static $TEST_LOG_LEVEL = '';
21: public static $PROD_LOG_LEVEL = '';
22:
23: public static $DEV_SERVER = '';
24: public static $TEST_SERVER = '';
25: public static $PROD_SERVER = '';
26:
27: public static $gid_client = '';
28: public static $ini_path = '';
29:
30:
31:
32:
33: public static function init($client = 'default'){
34: if (isset($_SESSION['lib_config'])){
35: $config = $_SESSION['lib_config'];
36: } else {
37: $config = parse_ini_file(self::$ini_path);
38: $_SESSION['lib_config'] = $config;
39: }
40: self::$gid_client = ($client != '') ? $client : 'default';
41:
42: $_SESSION['gid_client'] = $client;
43:
44: self::$CONF_PATH = $config['CONF_PATH'];
45: self::$CACHE_PATH = $config['CACHE_PATH'];
46: self::$LOG_PATH = $config['LOG_PATH'];
47:
48: self::$DEV_LOG_LEVEL = $config['DEV_LOG_LEVEL'];
49: self::$TEST_LOG_LEVEL = $config['TEST_LOG_LEVEL'];
50: self::$PROD_LOG_LEVEL = $config['PROD_LOG_LEVEL'];
51:
52: self::$DEV_SERVER = explode(',', trim($config['DEV_SERVER']));
53: self::$TEST_SERVER = explode(',', trim($config['TEST_SERVER']));
54: self::$PROD_SERVER = explode(',', trim($config['PROD_SERVER']));
55: }
56:
57: 58: 59: 60: 61:
62: public static function environment(){
63: if (isset($_SERVER['SERVER_NAME'])) {
64: if (in_array($_SERVER['SERVER_NAME'], self::$DEV_SERVER)){
65: return 'dev';
66: } elseif (in_array($_SERVER['SERVER_NAME'], self::$TEST_SERVER)) {
67: return 'test';
68: } else {
69: return 'prod';
70: }
71: } else {
72: return 'dev';
73: }
74: }
75:
76: public static function configPath(){
77: $path = Config::$CONF_PATH;
78: $path = (self::$gid_client != '') ? $path . self::$gid_client . '/' : $path;
79: $path = $path . self::environment() . '/oauthconf.xml';
80:
81: return $path;
82: }
83:
84: public static function logPath() {
85: $path = Config::$LOG_PATH;
86: $path = (self::$gid_client != '') ? $path . self::$gid_client . '/' : $path;
87: return $path;
88: }
89:
90: public static function cachePath() {
91: $path = Config::$CACHE_PATH;
92: $path = (self::$gid_client != '') ? $path . self::$gid_client . '/' : $path;
93: return $path;
94: }
95:
96: public static function logLevel() {
97: switch (self::environment()) {
98: case 'dev':
99: return Config::$DEV_LOG_LEVEL;
100: break;
101: case 'test':
102: return Config::$TEST_LOG_LEVEL;
103: break;
104: case 'prod':
105: return Config::$PROD_LOG_LEVEL;
106: break;
107: }
108: }
109: }