cache getReplies() values

This commit is contained in:
Evan Prodromou 2011-04-06 23:46:51 -04:00
parent 419ae3f18d
commit f9dc2fc0ab
1 changed files with 16 additions and 11 deletions

View File

@ -1208,23 +1208,28 @@ class Notice extends Memcached_DataObject
*/
function getReplies()
{
// XXX: cache me
$keypart = sprintf('notice:reply_ids:%d', $this->id);
$ids = array();
$idstr = self::cacheGet($keypart);
$reply = new Reply();
$reply->selectAdd();
$reply->selectAdd('profile_id');
$reply->notice_id = $this->id;
if ($idstr !== false) {
$ids = explode(',', $idstr);
} else {
$ids = array();
if ($reply->find()) {
while($reply->fetch()) {
$ids[] = $reply->profile_id;
$reply = new Reply();
$reply->selectAdd();
$reply->selectAdd('profile_id');
$reply->notice_id = $this->id;
if ($reply->find()) {
while($reply->fetch()) {
$ids[] = $reply->profile_id;
}
}
self::cacheSet($keypart, implode(',', $ids));
}
$reply->free();
return $ids;
}