X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FConfig.php;h=ba0db588cafa1fee01c65c4d0cbd61ea53de24a8;hb=eaaa978d20fe304543d0da929c5f10b35c45d992;hp=92f237d7f243d240fe12866489326d165dcab5ac;hpb=ce4ed6cca54134152c11baf8e0d0ff5b587b4998;p=quix0rs-gnu-social.git diff --git a/classes/Config.php b/classes/Config.php index 92f237d7f2..ba0db588ca 100644 --- a/classes/Config.php +++ b/classes/Config.php @@ -27,7 +27,7 @@ if (!defined('STATUSNET')) { require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; -class Config extends Memcached_DataObject +class Config extends Managed_DataObject { ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ @@ -43,6 +43,18 @@ class Config extends Memcached_DataObject /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE + public static function schemaDef() + { + return array( + 'fields' => array( + 'section' => array('type' => 'varchar', 'length' => 32, 'not null' => true, 'default' => '', 'description' => 'configuration section'), + 'setting' => array('type' => 'varchar', 'length' => 32, 'not null' => true, 'default' => '', 'description' => 'configuration setting'), + 'value' => array('type' => 'varchar', 'length' => 255, 'description' => 'configuration value'), + ), + 'primary key' => array('section', 'setting'), + ); + } + const settingsKey = 'config:settings'; static function loadSettings() @@ -58,8 +70,8 @@ class Config extends Memcached_DataObject $c = self::memcache(); if (!empty($c)) { - $settings = $c->get(common_cache_key(self::settingsKey)); - if (!empty($settings)) { + $settings = $c->get(Cache::key(self::settingsKey)); + if ($settings !== false) { return $settings; } } @@ -77,7 +89,7 @@ class Config extends Memcached_DataObject $config->free(); if (!empty($c)) { - $c->set(common_cache_key(self::settingsKey), $settings); + $c->set(Cache::key(self::settingsKey), $settings); } return $settings; @@ -120,12 +132,41 @@ class Config extends Memcached_DataObject return $result; } + function pkeyGet($kv) + { + return Memcached_DataObject::pkeyGet('Config', $kv); + } + + static function save($section, $setting, $value) + { + $result = null; + + $config = Config::pkeyGet(array('section' => $section, + 'setting' => $setting)); + + if (!empty($config)) { + $orig = clone($config); + $config->value = $value; + $result = $config->update($orig); + } else { + $config = new Config(); + + $config->section = $section; + $config->setting = $setting; + $config->value = $value; + + $result = $config->insert(); + } + + return $result; + } + function _blowSettingsCache() { $c = self::memcache(); if (!empty($c)) { - $c->delete(common_cache_key(self::settingsKey)); + $c->delete(Cache::key(self::settingsKey)); } } }