]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - classes/Memcached_DataObject.php
Updates to the update_translations script
[quix0rs-gnu-social.git] / classes / Memcached_DataObject.php
index ff1ca0bdfeb76be18f0cbd1c957cdc854d440bce..0f2c54cade0a1dd7e39d4b9214fcf2719be95d99 100644 (file)
@@ -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