mikk150 / yii2-tagdependency-invalidator
在模型更新/删除和插入时无效化Yii2的TagDependency标签
1.2.0
2021-09-15 12:41 UTC
Requires
- yiisoft/yii2: ~2.0.0
Requires (Dev)
- codeception/codeception: ^4.1.22
- codeception/module-asserts: ^1.0.0
- yiisoft/yii2-coding-standards: ^2.0
This package is auto-updated.
Last update: 2024-09-15 18:59:45 UTC
README
使用方法
要使用此行为,将其添加到模型或组件的行为模型中
class Book extends yii\base\ActiveRecord { const CACHE_KEY = 'BOOKS_ARE_AWESOME!'; public function behaviors() { return [ [ 'class' => 'mikk150\tagdependency\InvalidateBehavior', 'tags' => [ [ self::CACHE_KEY, 'id' => 'primaryKey', ], ] ] ] } }
然后在您想要使用缓存模型的地方,只需这样做
public function actionView($id) { return Yii::$app->cache->getOrSet(['book', $id], function () use ($id) { return Book::find()->byId($id)->one(); }, null, new TagDependency([ 'tags' => [ [ Book::CACHE_KEY, 'id' => $id, ] ] ])) }
如果触发BaseActiveRecord::EVENT_AFTER_UPDATE
、BaseActiveRecord::EVENT_AFTER_INSERT
或BaseActiveRecord::EVENT_AFTER_DELETE
事件,则根据键规则自动为该模型无效化缓存
此外,您还可以通过在model1上执行invalidate()
来清除缓存