cacheyii Model Dependent Cache Invalidation

  1. Requirements
  2. Resources

Invalidates a cached item when any of the Model dependencies you have specified have been updated since that cached item was created.

Example: if you list Model Post and Model Comment as dependancies for an item to cache then any update to either Post or Comment will invalidate that cache item.

Requirements

Yii 1.1 or above

Installation

>1. git clone git@github.com:evan108108/CacheYii.git >2. Place CacheYii in your 'protected/extensions' directory >3. In your protected/config/main.php

'import'=>array(
    ...
    'ext.CacheYii.*',
),

>4. Add this behavor to any model you intend to use as a cache dependency

function behaviors() {
    'updateCacheMapBehavior' => array(
        'class'=>'ext.CacheYii.EUpdateCacheMapBehavior',
        'cacheExp'=>0, //This is optional and the default is 0 (0 means never expire)
        'modelName'=>__CLASS__, //This is optional as it will assume current model
    ),
}
Usage
$model = EDCache::get("YOUR_UNIQUE_ID_HERE", array("Post", "Comments"));
if($model===false)
{
   $model = Post::model()->with('comments')->findAll();
   EDCache::set("YOUR_UNIQUE_ID_HERE", $model, 3600);
}
Get And Set (GAS)
$models = EDCache::gas("YOUR_UNIQUE_ID_HERE", array("Post", "Comments"), 3600, function() use ($model) {
	return $model->findAll();
});
Delete
EDCache::delete("YOUR_UNIQUE_ID_HERE");
Documentation
EDCache::get(YOUR_UNIQUE_ID, ARRAY_OF_MODEL_DEPENDENCIES);
EDCache::set(YOUR_UNIQUE_ID, DATA_TO_BE_CACHED, CACHE_EXPIRATION_IN_SECONDS);

Resources

CacheYii on GitHub

1 0
7 followers
822 downloads
Yii Version: 1.1
License: BSD-2-Clause
Category: Caching
Developed by: evan108108
Created on: Sep 12, 2012
Last updated: 10 years ago

Downloads

show all

Related Extensions