X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FMemcached_DataObject.php;h=0f2c54cade0a1dd7e39d4b9214fcf2719be95d99;hb=d582985c4253b89925e041a50c5cb2ab7cd274bc;hp=ff1ca0bdfeb76be18f0cbd1c957cdc854d440bce;hpb=d3f8cd39a172b6dd9bd373f5e1eda5a9886e4641;p=quix0rs-gnu-social.git diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index ff1ca0bdfe..0f2c54cade 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -26,15 +26,18 @@ class Memcached_DataObject extends DB_DataObject function &staticGet($cls, $k, $v=NULL) { if (is_null($v)) { $v = $k; - $keys = $cls->keys(); + # XXX: HACK! + $i = new $cls; + $keys = $i->keys(); $k = $keys[0]; + unset($i); } $i = Memcached_DataObject::getcached($cls, $k, $v); - if (!is_null($i)) { + if ($i) { return $i; } else { $i = DB_DataObject::staticGet($cls, $k, $v); - if (!is_null($i)) { + if ($i) { $i->encache(); } return $i; @@ -43,20 +46,18 @@ class Memcached_DataObject extends DB_DataObject function insert() { $result = parent::insert(); - if ($result) { - $this->encache(); - } return $result; } function update($orig=NULL) { - if (!is_null($orig)) { + if (is_object($orig) && $orig instanceof Memcached_DataObject) { $orig->decache(); # might be different keys } $result = parent::update($orig); if ($result) { $this->encache(); } + return $result; } function delete() { @@ -65,14 +66,7 @@ class Memcached_DataObject extends DB_DataObject } static function memcache() { - if (!common_config('memcached', 'enabled')) { - return NULL; - } else { - $cache = new Memcache(); - $res = $cache->connect(common_config('memcached', 'server'), - common_config('memcached', 'port')); - return ($res) ? $cache : NULL; - } + return common_memcache(); } static function cacheKey($cls, $k, $v) { @@ -109,8 +103,11 @@ class Memcached_DataObject extends DB_DataObject if ($type == 'K') { $primary[] = $key; } else { - $c->set($this->cacheKey($this->tableName(), $key, $this->$key), - $this); + $v = $this->$key; + if (!is_null($v)) { + $c->set($this->cacheKey($this->tableName(), $key, $v), + $this); + } } } # XXX: figure out what to do with compound pkeys