在Symfony 1.4中删除上下文部分的缓存

时间:2010-06-10 20:05:04

标签: php caching symfony1

我最近遇到了一个问题。我有几个部分在几个动作中并且有不同的显示数据的方式,因此我在cache.yml中使用了contextual选项:

_list:
  enabled: true
  contextual: true

现在我需要在更新数据时删除部分缓存,这在处理非上下文部分缓存或动作缓存时通常非常容易。

但是,当我尝试删除此缓存时,我只获取空返回值,并且不会删除缓存。像这样:

$uri = '@sf_cache_partial?module=comment&action=_list&sf_cache_key='.$id;
$cache_manager = $this->getContext()->getViewCacheManager();
$cache_manager->has($uri) // return true
$cache_manager->remove($uri) // return null
$cache_manager->has($uri) // return true, cache is still there

我试图摆弄sfViewCacheManager :: remove的第四个选项,这是上下文,因此:

$context = 'space/show/sf_culture/fr/slug/'.$slug.'/tab/news/comment/_list/'.$id;
$cache_manager->remove($uri, '', '', $context); // return null

任何人都知道如何做到这一点?我变得绝望了:P

感谢。

1 个答案:

答案 0 :(得分:0)

好吧,似乎sfFileCache中存在一个错误。我向symfony bugtracker提交了一个补丁。

作为参考,您可以看到故障单和补丁here