gpt4 book ai didi

caching - Yii2 PageCache 失效

转载 作者:行者123 更新时间:2023-12-04 12:25:55 32 4
gpt4 key购买 nike

是否有可能使特定操作的 PageCache 无效或删除。

考虑一下:

class SiteController extends Controller
{
public function behaviors()
{
return [
'pageCache' => [
'class' => PageCache::className(),
'duration' => Yii::$app->params['cacheTime'], // seconds
'variations' => [
Yii::$app->language,
Yii::$app->request->get('id'),
],
],
];
}

public function actionIndex( $id )
{
// action code
}
}

现在我想删除/使缓存无效

action en/site/index?id=1



目前我正在考虑在控制台应用程序中编写一些代码,但不知道如何实现。

编辑1 :我尝试为特定操作手动重建缓存无效。代码不能依赖“依赖”,因为几乎不可能实现该操作。

编辑2 : 任务是仅为特定操作(页面)重建缓存,其他缓存保持不变。

最佳答案

您可以使用 TagDependency 对于更细粒度的失效:

public function behaviors()
{
return [
'pageCache' => [
'class' => PageCache::className(),
'duration' => Yii::$app->params['cacheTime'], // seconds
'variations' => [
Yii::$app->language,
Yii::$app->request->get('id'),
],
'dependency' => new \yii\caching\TagDependency([
'tags' => [
Yii::$app->requestedRoute,
Yii::$app->request->get('id'),
],
]),
],
];
}

使缓存无效:
TagDependency::invalidate(Yii::$app->cache, [
'site/index', // route of action
123, // ID of page
]);

关于caching - Yii2 PageCache 失效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48830547/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com