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);
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.