cache generated activity info

This commit is contained in:
Evan Prodromou 2010-12-06 16:38:02 -05:00
parent da8b268e06
commit 8564fc51c5
2 changed files with 22 additions and 2 deletions

View File

@ -1236,10 +1236,16 @@ class Notice extends Memcached_DataObject
function asActivity($cur = null, $source = false)
{
$act = self::cacheGet('notice:as-activity:'.$this->id);
if (!empty($act)) {
return $act;
}
$act = new Activity();
if (Event::handle('StartNoticeAsActivity', array($this, &$act))) {
$profile = $this->getProfile();
$act->actor = ActivityObject::fromProfile($profile);
@ -1400,6 +1406,8 @@ class Notice extends Memcached_DataObject
Event::handle('EndNoticeAsActivity', array($this, &$act));
}
self::cacheSet('notice:as-activity:'.$this->id, $act);
return $act;
}

View File

@ -329,6 +329,14 @@ class Activity
function asString($namespace=false, $author=true)
{
$c = Cache::instance();
$str = $c->get('activity:as-string:'.Cache::keyize($this->id));
if (!empty($str)) {
return $str;
}
$xs = new XMLStringer(true);
if ($namespace) {
@ -549,7 +557,11 @@ class Activity
$xs->elementEnd('entry');
return $xs->getString();
$str = $xs->getString();
$c->set('activity:as-string:'.Cache::keyize($this->id), $str);
return $str;
}
private function _child($element, $tag, $namespace=self::SPEC)