hyperia / yii2-clear-cache-behavior
特定事件下清理Yii2缓存的行为
v2.0.0
2020-10-28 11:21 UTC
Requires
- php: >=7.1
- yiisoft/yii2: *
Requires (Dev)
This package is auto-updated.
Last update: 2024-08-28 19:42:19 UTC
README
特定事件下清理Yii2缓存的行为
安装
安装此扩展的首选方式是通过composer。
运行以下命令之一:
composer require hyperia/yii2-clear-cache-behavior:"*"
或添加
"hyperia/yii2-clear-cache-behavior": "*"
到您的composer.json文件的要求部分。
配置(使用方法)
在ActiveRecord模型类中,在插入、更新或删除后使标签失效
use yii\db\ActiveRecord; use hyperia\behaviors\ClearCacheBehavior; class Model extends ActiveRecord { private const CACHE_KEY = '~model~'; public function behaviors() { return [ ... 'clearCache' => [ 'class' => ClearCacheBehavior::class, 'events' => [ ActiveRecord::EVENT_AFTER_INSERT, ActiveRecord::EVENT_AFTER_UPDATE, ActiveRecord::EVENT_AFTER_DELETE ], 'type' => ClearCacheBehavior::TYPE_INVALIDATE_TAG, 'value' => static::CACHE_KEY ], ]; } }
参数说明
events
数组
确定在哪个事件下删除缓存。当您想设置具有相同设置的Event时。
默认值
[
ActiveRecord::EVENT_AFTER_INSERT,
ActiveRecord::EVENT_AFTER_UPDATE,
ActiveRecord::EVENT_AFTER_DELETE
]
cache
字符串
yii组件配置中缓存组件的名称
默认: "cache"
value
字符串 | 数组 | 闭包
确定要删除缓存的部分 仅当事件被设置时
type
字符串
设置如何删除缓存 仅当事件被设置时
类型
- TYPE_INVALIDATE_TAG : 调用yii\caching\TagDependency::invalidate($cacheObject, $value);
- TYPE_FLUSH : 调用缓存对象的flush()方法(通过缓存参数的值)
- TYPE_DELETE : 调用缓存对象的delete($value)方法(通过缓存参数的值)
events_with_settings
数组
表示多个事件设置的数组。确定在哪个事件下删除缓存。当您想设置多个Event时
简单示例
'eventsWithSettings' => [ \yii\web\Controller::EVENT_BEFORE_ACTION => [ 'type' => ClearCacheBehavior::TYPE_INVALIDATE_TAG, 'value' => static::CACHE_KEY ], \yii\web\Controller::EVENT_AFTER_ACTION => [ 'type' => ClearCacheBehavior::TYPE_DELETE, 'value' => function($event) use ($model) { return $model->id; } ] ],