diff options
author | Evan Prodromou <evan@controlyourself.ca> | 2008-09-26 12:09:41 -0400 |
---|---|---|
committer | Evan Prodromou <evan@controlyourself.ca> | 2008-09-26 12:09:41 -0400 |
commit | e2e6bbb298e8b41573e78c6acfd764cc95f6954a (patch) | |
tree | ff94ad4c3b19b13f15394090f0b0fe6e1517051b /classes/User.php | |
parent | 7ff02bb7d4483b3dc24edd78551a3936798056a8 (diff) |
caching layer for DB/DataObject
I added a new class, Memcached_DataObject, that will (optionally)
fetch data out of a memcached server if it's available. This only
works on 'staticGet'.
Methods that write to the database (insert, update, delete) will clear
and set the cache correctly, too.
darcs-hash:20080926160941-5ed1f-922de078b4c1941853ad014edf9a17fae486f8cf.gz
Diffstat (limited to 'classes/User.php')
-rw-r--r-- | classes/User.php | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/classes/User.php b/classes/User.php index 643069782..ec57e52a9 100644 --- a/classes/User.php +++ b/classes/User.php @@ -27,11 +27,11 @@ define('WITHFRIENDS_CACHE_WINDOW', 61); /** * Table Definition for user */ -require_once 'DB/DataObject.php'; +require_once 'classes/Memcached_DataObject.php'; require_once 'Validate.php'; require_once(INSTALLDIR.'/lib/noticewrapper.php'); -class User extends DB_DataObject +class User extends Memcached_DataObject { ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ @@ -65,7 +65,7 @@ class User extends DB_DataObject public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* Static get */ - function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('User',$k,$v); } + function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('User',$k,$v); } /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -109,7 +109,12 @@ class User extends DB_DataObject } $qry = 'UPDATE ' . $table . ' SET ' . $toupdate . ' WHERE id = ' . $this->id; - return $this->query($qry); + $orig->decache(); + $result = $this->query($qry); + if ($result) { + $this->encache(); + } + return $result; } function allowed_nickname($nickname) { |