This repository has been archived on 2024-06-26. You can view files and clone it, but cannot push or open issues or pull requests.
sakura/_sakura/components/Configuration.php
2015-03-29 18:25:18 +02:00

75 lines
1.7 KiB
PHP

<?php
/*
* Configuration Management
*/
namespace Sakura;
class Configuration {
public static $_LCNF;
public static $_DCNF;
// Constructor
public static function init($local) {
// Store $local in $_LCNF
if(is_array($local))
self::$_LCNF = $local;
else
die('<h1>Failed to initialise configuration.</h1>');
}
// Initialise Database configuration values.
// Different from init as that is called before the database connection is initially
// established
public static function initDB() {
$_DATA = Database::fetch('config', true);
$_DBCN = array();
foreach($_DATA as $_CONF)
$_DBCN[$_CONF[0]] = $_CONF[1];
self::$_DCNF = $_DBCN;
}
// Get values from the configuration on the file system
public static function getLocalConfig($key, $subkey = null) {
if(array_key_exists($key, self::$_LCNF)) {
if($subkey)
return self::$_LCNF[$key][$subkey];
else
return self::$_LCNF[$key];
} else
trigger_error('Unable to get local configuration value!', E_USER_ERROR);
}
// Dynamically set local configuration values, does not update the configuration file
public static function setLocalConfig($key, $subkey, $value) {
if($subkey) {
if(!isset(self::$_LCNF[$key]))
self::$_LCNF[$key] = array();
self::$_LCNF[$key][$subkey] = $value;
} else {
self::$_LCNF[$key] = $value;
}
}
// Get values from the configuration in the database
public static function getConfig($key) {
if(array_key_exists($key, self::$_DCNF))
return self::$_DCNF[$key];
else
trigger_error('Unable to get configuration value!', E_USER_ERROR);
}
}