*
* @param Config\IConfigCache $config The configuration cache
*/
- public static function init($config)
+ public static function init(Config\IConfigCache $config)
{
self::$config = $config;
}
*
* @param Config\IConfigAdapter $adapter
*/
- public static function setAdapter($adapter)
+ public static function setAdapter(Config\IConfigAdapter $adapter)
{
self::$adapter = $adapter;
}
/**
* @param array $config A initial config array
*/
- public function __construct($config = [])
+ public function __construct(array $config = [])
{
$this->config = [];
foreach ($config as $category => $values) {
foreach ($values as $key => $value) {
if ($overwrite) {
- self::set($category, $key, $value);
+ $this->set($category, $key, $value);
} else {
- self::setDefault($category, $key, $value);
+ $this->setDefault($category, $key, $value);
}
}
}
private function setDefault($cat, $k, $v)
{
if (!isset($this->config[$cat][$k])) {
- self::set($cat, $k, $v);
+ $this->set($cat, $k, $v);
}
}
* The addon sub-directory
* @var string
*/
- const ADDONSDIRECTORY = '/addons/';
+ const ADDONDIRECTORY = '/addon/';
private $baseDir;
private $configDir;
public function loadConfigFile($filename, $addon = false)
{
if ($addon) {
- $filepath = $this->baseDir . self::ADDONSDIRECTORY . $filename . self::SUBDIRECTORY . $filename . ".config.php";
+ $filepath = $this->baseDir . self::ADDONDIRECTORY . $filename . self::SUBDIRECTORY . $filename . ".config.php";
} else {
$filepath = $this->configDir . $filename . ".config.php";
}
/**
* @var IConfigCache The config cache of this driver
*/
- private $config;
+ private $configCache;
/**
- * @param IConfigCache $config The config cache of this driver
+ * @param IConfigCache $configCache The config cache of this driver
*/
- public function __construct($config)
+ public function __construct(IConfigCache $configCache)
{
- $this->config = $config;
+ $this->configCache = $configCache;
}
public function load($cat = "config")
while ($config = DBA::fetch($configs)) {
$k = $config['k'];
- $this->config->set($cat, $k, $config['v']);
+ $this->configCache->set($cat, $k, $config['v']);
if ($cat !== 'config') {
$this->cache[$cat][$k] = $config['v'];
$this->cache[$cat][$k] = $value;
$this->in_db[$cat][$k] = true;
return $value;
- } elseif ($this->config->get($cat, $k) !== null) {
+ } elseif ($this->configCache->get($cat, $k) !== null) {
// Assign the value (mostly) from config/local.config.php file to the cache
- $this->cache[$cat][$k] = $this->config->get($cat, $k);
+ $this->cache[$cat][$k] = $this->configCache->get($cat, $k);
$this->in_db[$cat][$k] = false;
- return $this->config->get($cat, $k);
- } elseif ($this->config->get('config', $k) !== null) {
+ return $this->configCache->get($cat, $k);
+ } elseif ($this->configCache->get('config', $k) !== null) {
// Assign the value (mostly) from config/local.config.php file to the cache
- $this->cache[$k] = $this->config->get('config', $k);
+ $this->cache[$k] = $this->configCache->get('config', $k);
$this->in_db[$k] = false;
- return $this->config->get('config', $k);
+ return $this->configCache->get('config', $k);
}
$this->cache[$cat][$k] = '!<unset>!';
return true;
}
- $this->config->set($cat, $k, $value);
+ $this->configCache->set($cat, $k, $value);
// Assign the just added value to the cache
$this->cache[$cat][$k] = $dbvalue;
* The config cache of this adapter
* @var IPConfigCache
*/
- private $config;
+ private $configCache;
/**
- * @param IPConfigCache $config The config cache of this adapter
+ * @param IPConfigCache $configCache The config cache of this adapter
*/
- public function __construct($config)
+ public function __construct(IPConfigCache $configCache)
{
- $this->config = $config;
+ $this->configCache = $configCache;
}
public function load($uid, $cat)
while ($pconfig = DBA::fetch($pconfigs)) {
$k = $pconfig['k'];
- $this->config->setP($uid, $cat, $k, $pconfig['v']);
+ $this->configCache->setP($uid, $cat, $k, $pconfig['v']);
$this->in_db[$uid][$cat][$k] = true;
}
} else if ($cat != 'config') {
// Negative caching
- $this->config->setP($uid, $cat, null, "!<unset>!");
+ $this->configCache->setP($uid, $cat, null, "!<unset>!");
}
DBA::close($pconfigs);
}
{
if (!$refresh) {
// Looking if the whole family isn't set
- if ($this->config->getP($uid, $cat) !== null) {
- if ($this->config->getP($uid, $cat) === '!<unset>!') {
+ if ($this->configCache->getP($uid, $cat) !== null) {
+ if ($this->configCache->getP($uid, $cat) === '!<unset>!') {
return $default_value;
}
}
- if ($this->config->getP($uid, $cat, $k) !== null) {
- if ($this->config->getP($uid, $cat, $k) === '!<unset>!') {
+ if ($this->configCache->getP($uid, $cat, $k) !== null) {
+ if ($this->configCache->getP($uid, $cat, $k) === '!<unset>!') {
return $default_value;
}
- return $this->config->getP($uid, $cat, $k);
+ return $this->configCache->getP($uid, $cat, $k);
}
}
if (DBA::isResult($pconfig)) {
$val = (preg_match("|^a:[0-9]+:{.*}$|s", $pconfig['v']) ? unserialize($pconfig['v']) : $pconfig['v']);
- $this->config->setP($uid, $cat, $k, $val);
+ $this->configCache->setP($uid, $cat, $k, $val);
$this->in_db[$uid][$cat][$k] = true;
return $val;
} else {
- $this->config->setP($uid, $cat, $k, '!<unset>!');
+ $this->configCache->setP($uid, $cat, $k, '!<unset>!');
$this->in_db[$uid][$cat][$k] = false;
return true;
}
- $this->config->setP($uid, $cat, $k, $value);
+ $this->configCache->setP($uid, $cat, $k, $value);
// manage array value
$dbvalue = (is_array($value) ? serialize($value) : $dbvalue);
public function delete($uid, $cat, $k)
{
- $this->config->deleteP($uid, $cat, $k);
+ $this->configCache->deleteP($uid, $cat, $k);
if (!empty($this->in_db[$uid][$cat][$k])) {
unset($this->in_db[$uid][$cat][$k]);
/**
* @var IConfigCache The config cache of this driver
*/
- private $config;
+ private $configCache;
/**
- * @param IConfigCache $config The config cache of this driver
+ * @param IConfigCache $configCache The config cache of this driver
*/
- public function __construct($config)
+ public function __construct(IConfigCache $configCache)
{
- $this->config = $config;
+ $this->configCache = $configCache;
$this->load();
}
$configs = DBA::select('config', ['cat', 'v', 'k']);
while ($config = DBA::fetch($configs)) {
- $this->config->set($config['cat'], $config['k'], $config['v']);
+ $this->configCache->set($config['cat'], $config['k'], $config['v']);
}
DBA::close($configs);
if ($refresh) {
$config = DBA::selectFirst('config', ['v'], ['cat' => $cat, 'k' => $k]);
if (DBA::isResult($config)) {
- $this->config->set($cat, $k, $config['v']);
+ $this->configCache->set($cat, $k, $config['v']);
}
}
- $return = $this->config->get($cat, $k, $default_value);
+ $return = $this->configCache->get($cat, $k, $default_value);
return $return;
}
// The exception are array values.
$compare_value = !is_array($value) ? (string)$value : $value;
- if ($this->config->get($cat, $k) === $compare_value) {
+ if ($this->configCache->get($cat, $k) === $compare_value) {
return true;
}
- $this->config->set($cat, $k, $value);
+ $this->configCache->set($cat, $k, $value);
// manage array value
$dbvalue = is_array($value) ? serialize($value) : $value;
public function delete($cat, $k)
{
- $this->config->delete($cat, $k);
+ $this->configCache->delete($cat, $k);
$result = DBA::delete('config', ['cat' => $cat, 'k' => $k]);
* The config cache of this adapter
* @var IPConfigCache
*/
- private $config;
+ private $configCache;
/**
- * @param IPConfigCache $config The config cache of this adapter
+ * @param IPConfigCache $configCache The config cache of this adapter
* @param int $uid The UID of the current user
*/
- public function __construct($config, $uid = null)
+ public function __construct(IPConfigCache $configCache, $uid = null)
{
- $this->config = $config;
+ $this->configCache = $configCache;
if (isset($uid)) {
$this->load($uid, 'config');
}
$pconfigs = DBA::select('pconfig', ['cat', 'v', 'k'], ['uid' => $uid]);
while ($pconfig = DBA::fetch($pconfigs)) {
- $this->config->setP($uid, $pconfig['cat'], $pconfig['k'], $pconfig['v']);
+ $this->configCache->setP($uid, $pconfig['cat'], $pconfig['k'], $pconfig['v']);
}
DBA::close($pconfigs);
if ($refresh) {
$config = DBA::selectFirst('pconfig', ['v'], ['uid' => $uid, 'cat' => $cat, 'k' => $k]);
if (DBA::isResult($config)) {
- $this->config->setP($uid, $cat, $k, $config['v']);
+ $this->configCache->setP($uid, $cat, $k, $config['v']);
} else {
- $this->config->deleteP($uid, $cat, $k);
+ $this->configCache->deleteP($uid, $cat, $k);
}
}
- return $this->config->getP($uid, $cat, $k, $default_value);;
+ return $this->configCache->getP($uid, $cat, $k, $default_value);;
}
public function set($uid, $cat, $k, $value)
// The exception are array values.
$compare_value = !is_array($value) ? (string)$value : $value;
- if ($this->config->getP($uid, $cat, $k) === $compare_value) {
+ if ($this->configCache->getP($uid, $cat, $k) === $compare_value) {
return true;
}
- $this->config->setP($uid, $cat, $k, $value);
+ $this->configCache->setP($uid, $cat, $k, $value);
// manage array value
$dbvalue = is_array($value) ? serialize($value) : $value;
$this->load($uid, $cat);
}
- $this->config->deleteP($uid, $cat, $k);
+ $this->configCache->deleteP($uid, $cat, $k);
$result = DBA::delete('pconfig', ['uid' => $uid, 'cat' => $cat, 'k' => $k]);
/**
* @var IConfigCache
*/
- private static $config;
+ private static $configCache;
private static $server_info = '';
private static $connection;
private static $driver;
private static $db_name = '';
private static $db_charset = '';
- public static function connect($config, $serveraddr, $user, $pass, $db, $charset = null)
+ public static function connect($configCache, $serveraddr, $user, $pass, $db, $charset = null)
{
if (!is_null(self::$connection) && self::connected()) {
return true;
}
// We are storing these values for being able to perform a reconnect
- self::$config = $config;
+ self::$configCache = $configCache;
self::$db_serveraddr = $serveraddr;
self::$db_user = $user;
self::$db_pass = $pass;
public static function reconnect() {
self::disconnect();
- $ret = self::connect(self::$config, self::$db_serveraddr, self::$db_user, self::$db_pass, self::$db_name, self::$db_charset);
+ $ret = self::connect(self::$configCache, self::$db_serveraddr, self::$db_user, self::$db_pass, self::$db_name, self::$db_charset);
return $ret;
}
*/
private static function logIndex($query) {
- if (!self::$config->get('system', 'db_log_index')) {
+ if (!self::$configCache->get('system', 'db_log_index')) {
return;
}
return;
}
- $watchlist = explode(',', self::$config->get('system', 'db_log_index_watch'));
- $blacklist = explode(',', self::$config->get('system', 'db_log_index_blacklist'));
+ $watchlist = explode(',', self::$configCache->get('system', 'db_log_index_watch'));
+ $blacklist = explode(',', self::$configCache->get('system', 'db_log_index_blacklist'));
while ($row = self::fetch($r)) {
- if ((intval(self::$config->get('system', 'db_loglimit_index')) > 0)) {
+ if ((intval(self::$configCache->get('system', 'db_loglimit_index')) > 0)) {
$log = (in_array($row['key'], $watchlist) &&
- ($row['rows'] >= intval(self::$config->get('system', 'db_loglimit_index'))));
+ ($row['rows'] >= intval(self::$configCache->get('system', 'db_loglimit_index'))));
} else {
$log = false;
}
- if ((intval(self::$config->get('system', 'db_loglimit_index_high')) > 0) && ($row['rows'] >= intval($Config::getConfigValue('system', 'db_loglimit_index_high')))) {
+ if ((intval(self::$configCache->get('system', 'db_loglimit_index_high')) > 0) && ($row['rows'] >= intval(self::$configCache->get('system', 'db_loglimit_index_high')))) {
$log = true;
}
if ($log) {
$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
- @file_put_contents(self::$config->get('system', 'db_log_index'), DateTimeFormat::utcNow()."\t".
+ @file_put_contents(self::$configCache->get('system', 'db_log_index'), DateTimeFormat::utcNow()."\t".
$row['key']."\t".$row['rows']."\t".$row['Extra']."\t".
basename($backtrace[1]["file"])."\t".
$backtrace[1]["line"]."\t".$backtrace[2]["function"]."\t".
$orig_sql = $sql;
- if (self::$config->get('system', 'db_callstack') !== null) {
+ if (self::$configCache->get('system', 'db_callstack') !== null) {
$sql = "/*".System::callstack()." */ ".$sql;
}
$a->saveTimestamp($stamp1, 'database');
- if (self::$config->get('system', 'db_log')) {
+ if (self::$configCache->get('system', 'db_log')) {
$stamp2 = microtime(true);
$duration = (float)($stamp2 - $stamp1);
- if (($duration > self::$config->get('system', 'db_loglimit'))) {
+ if (($duration > self::$configCache->get('system', 'db_loglimit'))) {
$duration = round($duration, 3);
$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
- @file_put_contents(self::$config->get('system', 'db_log'), DateTimeFormat::utcNow()."\t".$duration."\t".
+ @file_put_contents(self::$configCache->get('system', 'db_log'), DateTimeFormat::utcNow()."\t".$duration."\t".
basename($backtrace[1]["file"])."\t".
$backtrace[1]["line"]."\t".$backtrace[2]["function"]."\t".
substr(self::replaceParameters($sql, $args), 0, 2000)."\n", FILE_APPEND);
* This process must only be started once, since the value is cached.
*/
private static function buildRelationData() {
- $definition = DBStructure::definition(self::$config->get('system', 'basepath'));
+ $definition = DBStructure::definition(self::$configCache->get('system', 'basepath'));
foreach ($definition AS $table => $structure) {
foreach ($structure['fields'] AS $field => $field_struct) {
*
* @return Config\IConfigAdapter
*/
- public static function createConfig($type, $config)
+ public static function createConfig($type, Config\IConfigCache $config)
{
if ($type == 'preload') {
return new Config\PreloadConfigAdapter($config);
*
* @return Config\IPConfigAdapter
*/
- public static function createPConfig($type, $config, $uid = null)
+ public static function createPConfig($type, Config\IPConfigCache $config, $uid = null)
{
if ($type == 'preload') {
return new Config\PreloadPConfigAdapter($config, $uid);