try to use caching functions where possible in User

darcs-hash:20081002162513-5ed1f-fff718be660fa4a8abf58df402a3db30d72d11db.gz
This commit is contained in:
Evan Prodromou 2008-10-02 12:25:13 -04:00
parent c8392ed58d
commit 37735a35c0
3 changed files with 17 additions and 16 deletions

View File

@ -30,4 +30,8 @@ class Fave extends Memcached_DataObject
}
return $fave;
}
function &pkeyGet($kv) {
return Memcached_DataObject('Fave', $kv);
}
}

View File

@ -42,4 +42,8 @@ class Subscription extends Memcached_DataObject
/* the code above is auto generated do not remove the tag below */
###END_AUTOCODE
function &pkeyGet($kv) {
return Memcached_DataObject::pkeyGet('Subscription', $kv);
}
}

View File

@ -65,21 +65,15 @@ class User extends Memcached_DataObject
###END_AUTOCODE
function getProfile() {
$profile = DB_DataObject::factory('profile');
$profile->id = $this->id;
if ($profile->find()) {
$profile->fetch();
return $profile;
}
return NULL;
return Profile::staticGet('id', $this->id);
}
function isSubscribed($other) {
assert(!is_null($other));
$sub = DB_DataObject::factory('subscription');
$sub->subscriber = $this->id;
$sub->subscribed = $other->id;
return $sub->find();
# XXX: cache results of this query
$sub = Subscription::pkeyGet(array('subscriber' => $this->id,
'subscribed' => $other->id));
return (is_null($sub)) ? false : true;
}
# 'update' won't write key columns, so we have to do it ourselves.
@ -130,7 +124,7 @@ class User extends Memcached_DataObject
}
function getCarrier() {
return Sms_carrier::staticGet($this->carrier);
return Sms_carrier::staticGet('id', $this->carrier);
}
function subscribeTo($other) {
@ -271,10 +265,9 @@ class User extends Memcached_DataObject
}
function hasFave($notice) {
$fave = new Fave();
$fave->user_id = $this->id;
$fave->notice_id = $notice->id;
if ($fave->find()) {
$fave = Fave::pkeyGet(array('user_id' => $this->id,
'notice_id' => $notice->id));
if (!is_null($fave)) {
$result = true;
} else {
$result = false;