summaryrefslogtreecommitdiff
path: root/classes/User.php
diff options
context:
space:
mode:
authorEvan Prodromou <evan@controlyourself.ca>2008-09-26 12:09:41 -0400
committerEvan Prodromou <evan@controlyourself.ca>2008-09-26 12:09:41 -0400
commite2e6bbb298e8b41573e78c6acfd764cc95f6954a (patch)
treeff94ad4c3b19b13f15394090f0b0fe6e1517051b /classes/User.php
parent7ff02bb7d4483b3dc24edd78551a3936798056a8 (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.php13
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) {