JomSocial won its third CMSexpo Award. Enjoy 20% Discount Sitewide until 24th May! Learn More

Recommend Print

Cache API

Categories Development Favourites Add to favourites

Cache Implement In View Or Controller

{code}$cache 	   = CFactory::getCache('Core');
 
// Random is to handle shuffle matter,
// cache 3 different set of data.
$intRandom = rand(COMMUNITY_CACHE_RANDOM_MIN,
COMMUNITY_CACHE_RANDOM_MAX);
 
 
// Cache does not exist, implement the cache data.
if (!($data = $cache->load('frontpage_getLatestVideos_' . $intRandom))){
$data = // generate data
$cache->save($data, NULL, array(COMMUNITY_CACHE_TAG_VIDEOS));
}

Cache Implement / Remove In Model Class

1. To implement cache in model class, add following code in constructor

// addMethod(methodName, [ACTION_SAVE, ACTION_REMOVE], [COMMUNITY_CACHE_TAG_ALL, array(TAG)]) 
$oCache = CCache::inject($this);
$oCache->addMethod('getAllPhotos', CCache::ACTION_SAVE, array(COMMUNITY_CACHE_TAG_PHOTOS));


2. To remove cache in model class, add following code in models's constructor

$oCache = CCache::inject($this);
$oCache->addMethod('deleteActivity', CCache::ACTION_REMOVE, array(COMMUNITY_CACHE_TAG_ACTIVITIES));
$oCache->addMethod('removeActivity', CCache::ACTION_REMOVE, array(COMMUNITY_CACHE_TAG_ACTIVITIES));

Cache Remove In Table Class

1. Extend CTableCache (table/cache.php) in table class

   class CTablePhoto extends CTableCache

 

2. Add following code in constructor

   // Get cache object.
$oCache = CCache::inject($this);
// Remove video cache on every delete & store
$oCache->addMethod(CCache::METHOD_DEL, CCache::ACTION_REMOVE, array(COMMUNITY_CACHE_TAG_VIDEOS));
$oCache->addMethod(CCache::METHOD_STORE, CCache::ACTION_REMOVE, array(COMMUNITY_CACHE_TAG_VIDEOS));
 
// Only CCache::METHOD_DEL, CCache::METHOD_SAVE, CCache::METHOD_STORE will handle by
// the cache object,other methods need to be done manually by the class itself.

Cache Remove in User Plugin

Cache will be remove automatically when following functions get trigger.

1. onAfterStoreUser()

2. onAfterDeleteUser()

  • Created
    Monday, 02 August 2010
  • Last modified
    Friday, 19 November 2010
  • Voting
    (3 votes)
  • Revised by
    ajmal