]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
use DB_DataObject_Cast objects in a couple of different places in the code
authorEvan Prodromou <evan@status.net>
Fri, 4 Jun 2010 19:29:38 +0000 (15:29 -0400)
committerEvan Prodromou <evan@status.net>
Fri, 4 Jun 2010 19:29:38 +0000 (15:29 -0400)
classes/Memcached_DataObject.php

index bd9b528dbad3137c6eda60b7dad6479c74b32e25..4579f64df8ec21ce05a2a34e4ecca522ba4407dc 100644 (file)
@@ -133,25 +133,7 @@ class Memcached_DataObject extends Safe_DataObject
             common_log(LOG_ERR, __METHOD__ . ' object in param: ' .
                 str_replace("\n", " ", $e->getTraceAsString()));
         }
-        if (is_object($v) && $v instanceof DB_DataObject_Cast) {
-            switch ($v->type) {
-            case 'date':
-                $vstr = $v->year . '-' . $v->month . '-' . $v->day;
-                break;
-            case 'blob':
-            case 'string':
-            case 'sql':
-            case 'datetime':
-            case 'time':
-                throw new ServerException("Unhandled DB_DataObject_Cast type passed as cacheKey value: '$v->type'");
-                break;
-            default:
-                throw new ServerException("Unknown DB_DataObject_Cast type passed as cacheKey value: '$v->type'");
-                break;
-            }
-        } else {
-            $vstr = $v;
-        }
+        $vstr = self::valueString($v);
         return common_cache_key(strtolower($cls).':'.$k.':'.$vstr);
     }
 
@@ -248,10 +230,10 @@ class Memcached_DataObject extends Safe_DataObject
                 if (empty($this->$key)) {
                     continue;
                 }
-                $ckeys[] = $this->cacheKey($this->tableName(), $key, $this->$key);
+                $ckeys[] = $this->cacheKey($this->tableName(), $key, self::valueString($this->$key));
             } else if ($type == 'K' || $type == 'N') {
                 $pkey[] = $key;
-                $pval[] = $this->$key;
+                $pval[] = self::valueString($this->$key);
             } else {
                 throw new Exception("Unknown key type $key => $type for " . $this->tableName());
             }
@@ -623,5 +605,30 @@ class Memcached_DataObject extends Safe_DataObject
 
         return $c->set($cacheKey, $value);
     }
+
+    static function valueString($v)
+    {
+        $vstr = null;
+        if (is_object($v) && $v instanceof DB_DataObject_Cast) {
+            switch ($v->type) {
+            case 'date':
+                $vstr = $v->year . '-' . $v->month . '-' . $v->day;
+                break;
+            case 'blob':
+            case 'string':
+            case 'sql':
+            case 'datetime':
+            case 'time':
+                throw new ServerException("Unhandled DB_DataObject_Cast type passed as cacheKey value: '$v->type'");
+                break;
+            default:
+                throw new ServerException("Unknown DB_DataObject_Cast type passed as cacheKey value: '$v->type'");
+                break;
+            }
+        } else {
+            $vstr = strval($v);
+        }
+        return $vstr;
+    }
 }