replace all tabs with four spaces
The PEAR coding standards decree: no tabs, but indent by four spaces. I've done a global search-and-replace on all tabs, replacing them by four spaces. This is a huge change, but it will go a long way to getting us towards phpcs-compliance. And that means better code readability, and that means more participation. darcs-hash:20081223191907-84dde-21e8efe210e6d5d54e935a22d0cee5c7bbfc007d.gz
This commit is contained in:
@@ -24,151 +24,151 @@ require_once INSTALLDIR.'/classes/Memcached_DataObject.php';
|
||||
class Memcached_DataObject extends DB_DataObject
|
||||
{
|
||||
function &staticGet($cls, $k, $v=NULL) {
|
||||
if (is_null($v)) {
|
||||
$v = $k;
|
||||
# XXX: HACK!
|
||||
$i = new $cls;
|
||||
$keys = $i->keys();
|
||||
$k = $keys[0];
|
||||
unset($i);
|
||||
}
|
||||
$i = Memcached_DataObject::getcached($cls, $k, $v);
|
||||
if ($i) {
|
||||
return $i;
|
||||
} else {
|
||||
$i = DB_DataObject::staticGet($cls, $k, $v);
|
||||
if ($i) {
|
||||
$i->encache();
|
||||
}
|
||||
return $i;
|
||||
}
|
||||
}
|
||||
|
||||
function &pkeyGet($cls, $kv) {
|
||||
$i = Memcached_DataObject::multicache($cls, $kv);
|
||||
if ($i) {
|
||||
return $i;
|
||||
} else {
|
||||
$i = new $cls();
|
||||
foreach ($kv as $k => $v) {
|
||||
$i->$k = $v;
|
||||
}
|
||||
if ($i->find(true)) {
|
||||
$i->encache();
|
||||
} else {
|
||||
$i = NULL;
|
||||
}
|
||||
if (is_null($v)) {
|
||||
$v = $k;
|
||||
# XXX: HACK!
|
||||
$i = new $cls;
|
||||
$keys = $i->keys();
|
||||
$k = $keys[0];
|
||||
unset($i);
|
||||
}
|
||||
$i = Memcached_DataObject::getcached($cls, $k, $v);
|
||||
if ($i) {
|
||||
return $i;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$i = DB_DataObject::staticGet($cls, $k, $v);
|
||||
if ($i) {
|
||||
$i->encache();
|
||||
}
|
||||
return $i;
|
||||
}
|
||||
}
|
||||
|
||||
function insert() {
|
||||
$result = parent::insert();
|
||||
return $result;
|
||||
}
|
||||
|
||||
function update($orig=NULL) {
|
||||
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() {
|
||||
$this->decache(); # while we still have the values!
|
||||
return parent::delete();
|
||||
}
|
||||
|
||||
static function memcache() {
|
||||
return common_memcache();
|
||||
}
|
||||
|
||||
static function cacheKey($cls, $k, $v) {
|
||||
return common_cache_key(strtolower($cls).':'.$k.':'.$v);
|
||||
}
|
||||
|
||||
static function getcached($cls, $k, $v) {
|
||||
$c = Memcached_DataObject::memcache();
|
||||
if (!$c) {
|
||||
return false;
|
||||
} else {
|
||||
return $c->get(Memcached_DataObject::cacheKey($cls, $k, $v));
|
||||
}
|
||||
}
|
||||
function &pkeyGet($cls, $kv) {
|
||||
$i = Memcached_DataObject::multicache($cls, $kv);
|
||||
if ($i) {
|
||||
return $i;
|
||||
} else {
|
||||
$i = new $cls();
|
||||
foreach ($kv as $k => $v) {
|
||||
$i->$k = $v;
|
||||
}
|
||||
if ($i->find(true)) {
|
||||
$i->encache();
|
||||
} else {
|
||||
$i = NULL;
|
||||
}
|
||||
return $i;
|
||||
}
|
||||
}
|
||||
|
||||
function keyTypes() {
|
||||
global $_DB_DATAOBJECT;
|
||||
function insert() {
|
||||
$result = parent::insert();
|
||||
return $result;
|
||||
}
|
||||
|
||||
function update($orig=NULL) {
|
||||
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() {
|
||||
$this->decache(); # while we still have the values!
|
||||
return parent::delete();
|
||||
}
|
||||
|
||||
static function memcache() {
|
||||
return common_memcache();
|
||||
}
|
||||
|
||||
static function cacheKey($cls, $k, $v) {
|
||||
return common_cache_key(strtolower($cls).':'.$k.':'.$v);
|
||||
}
|
||||
|
||||
static function getcached($cls, $k, $v) {
|
||||
$c = Memcached_DataObject::memcache();
|
||||
if (!$c) {
|
||||
return false;
|
||||
} else {
|
||||
return $c->get(Memcached_DataObject::cacheKey($cls, $k, $v));
|
||||
}
|
||||
}
|
||||
|
||||
function keyTypes() {
|
||||
global $_DB_DATAOBJECT;
|
||||
if (!isset($_DB_DATAOBJECT['INI'][$this->_database][$this->__table."__keys"])) {
|
||||
$this->databaseStructure();
|
||||
$this->databaseStructure();
|
||||
|
||||
}
|
||||
return $_DB_DATAOBJECT['INI'][$this->_database][$this->__table."__keys"];
|
||||
}
|
||||
|
||||
function encache() {
|
||||
$c = $this->memcache();
|
||||
if (!$c) {
|
||||
return false;
|
||||
} else {
|
||||
$pkey = array();
|
||||
$pval = array();
|
||||
$types = $this->keyTypes();
|
||||
ksort($types);
|
||||
foreach ($types as $key => $type) {
|
||||
if ($type == 'K') {
|
||||
$pkey[] = $key;
|
||||
$pval[] = $this->$key;
|
||||
} else {
|
||||
$c->set($this->cacheKey($this->tableName(), $key, $this->$key), $this);
|
||||
}
|
||||
}
|
||||
# XXX: should work for both compound and scalar pkeys
|
||||
$pvals = implode(',', $pval);
|
||||
$pkeys = implode(',', $pkey);
|
||||
$c->set($this->cacheKey($this->tableName(), $pkeys, $pvals), $this);
|
||||
}
|
||||
}
|
||||
|
||||
function decache() {
|
||||
$c = $this->memcache();
|
||||
if (!$c) {
|
||||
return false;
|
||||
} else {
|
||||
$pkey = array();
|
||||
$pval = array();
|
||||
$types = $this->keyTypes();
|
||||
ksort($types);
|
||||
foreach ($types as $key => $type) {
|
||||
if ($type == 'K') {
|
||||
$pkey[] = $key;
|
||||
$pval[] = $this->$key;
|
||||
} else {
|
||||
$c->delete($this->cacheKey($this->tableName(), $key, $this->$key));
|
||||
}
|
||||
}
|
||||
# should work for both compound and scalar pkeys
|
||||
# XXX: comma works for now but may not be safe separator for future keys
|
||||
$pvals = implode(',', $pval);
|
||||
$pkeys = implode(',', $pkey);
|
||||
$c->delete($this->cacheKey($this->tableName(), $pkeys, $pvals));
|
||||
}
|
||||
}
|
||||
return $_DB_DATAOBJECT['INI'][$this->_database][$this->__table."__keys"];
|
||||
}
|
||||
|
||||
function encache() {
|
||||
$c = $this->memcache();
|
||||
if (!$c) {
|
||||
return false;
|
||||
} else {
|
||||
$pkey = array();
|
||||
$pval = array();
|
||||
$types = $this->keyTypes();
|
||||
ksort($types);
|
||||
foreach ($types as $key => $type) {
|
||||
if ($type == 'K') {
|
||||
$pkey[] = $key;
|
||||
$pval[] = $this->$key;
|
||||
} else {
|
||||
$c->set($this->cacheKey($this->tableName(), $key, $this->$key), $this);
|
||||
}
|
||||
}
|
||||
# XXX: should work for both compound and scalar pkeys
|
||||
$pvals = implode(',', $pval);
|
||||
$pkeys = implode(',', $pkey);
|
||||
$c->set($this->cacheKey($this->tableName(), $pkeys, $pvals), $this);
|
||||
}
|
||||
}
|
||||
|
||||
function decache() {
|
||||
$c = $this->memcache();
|
||||
if (!$c) {
|
||||
return false;
|
||||
} else {
|
||||
$pkey = array();
|
||||
$pval = array();
|
||||
$types = $this->keyTypes();
|
||||
ksort($types);
|
||||
foreach ($types as $key => $type) {
|
||||
if ($type == 'K') {
|
||||
$pkey[] = $key;
|
||||
$pval[] = $this->$key;
|
||||
} else {
|
||||
$c->delete($this->cacheKey($this->tableName(), $key, $this->$key));
|
||||
}
|
||||
}
|
||||
# should work for both compound and scalar pkeys
|
||||
# XXX: comma works for now but may not be safe separator for future keys
|
||||
$pvals = implode(',', $pval);
|
||||
$pkeys = implode(',', $pkey);
|
||||
$c->delete($this->cacheKey($this->tableName(), $pkeys, $pvals));
|
||||
}
|
||||
}
|
||||
|
||||
function multicache($cls, $kv) {
|
||||
ksort($kv);
|
||||
$c = Memcached_DataObject::memcache();
|
||||
if (!$c) {
|
||||
return false;
|
||||
} else {
|
||||
$pkeys = implode(',', array_keys($kv));
|
||||
$pvals = implode(',', array_values($kv));
|
||||
return $c->get(Memcached_DataObject::cacheKey($cls, $pkeys, $pvals));
|
||||
}
|
||||
}
|
||||
function multicache($cls, $kv) {
|
||||
ksort($kv);
|
||||
$c = Memcached_DataObject::memcache();
|
||||
if (!$c) {
|
||||
return false;
|
||||
} else {
|
||||
$pkeys = implode(',', array_keys($kv));
|
||||
$pvals = implode(',', array_values($kv));
|
||||
return $c->get(Memcached_DataObject::cacheKey($cls, $pkeys, $pvals));
|
||||
}
|
||||
}
|
||||
|
||||
function getSearchEngine($table) {
|
||||
require_once INSTALLDIR.'/lib/search_engines.php';
|
||||
|
Reference in New Issue
Block a user