use DB_DataObject_Cast objects in a couple of different places in the code
This commit is contained in:
parent
cbdeb6fb8f
commit
6d39a75137
|
@ -133,25 +133,7 @@ class Memcached_DataObject extends Safe_DataObject
|
||||||
common_log(LOG_ERR, __METHOD__ . ' object in param: ' .
|
common_log(LOG_ERR, __METHOD__ . ' object in param: ' .
|
||||||
str_replace("\n", " ", $e->getTraceAsString()));
|
str_replace("\n", " ", $e->getTraceAsString()));
|
||||||
}
|
}
|
||||||
if (is_object($v) && $v instanceof DB_DataObject_Cast) {
|
$vstr = self::valueString($v);
|
||||||
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;
|
|
||||||
}
|
|
||||||
return common_cache_key(strtolower($cls).':'.$k.':'.$vstr);
|
return common_cache_key(strtolower($cls).':'.$k.':'.$vstr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -248,10 +230,10 @@ class Memcached_DataObject extends Safe_DataObject
|
||||||
if (empty($this->$key)) {
|
if (empty($this->$key)) {
|
||||||
continue;
|
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') {
|
} else if ($type == 'K' || $type == 'N') {
|
||||||
$pkey[] = $key;
|
$pkey[] = $key;
|
||||||
$pval[] = $this->$key;
|
$pval[] = self::valueString($this->$key);
|
||||||
} else {
|
} else {
|
||||||
throw new Exception("Unknown key type $key => $type for " . $this->tableName());
|
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);
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user