0

我正在使用 bramstroker 的StrokerCache Zend Framework 2 模块,该模块本身使用 Zend\Cache 并具有方法clearByTags()

如果我想清除缓存,以下工作正常:

public function fooAction()
{
    $cs = $this->getServiceLocator()->get('strokercache_service');
    var_dump($cs->clearByTags(array(
        'controller_ClientCms\Controller\Cms'           
    )));
}

但是,如果我想包含参数怎么办?

    $cs->clearByTags(array(
        'controller_ClientCms\Controller\Cms,param_action:index,param_client:foo'           
    ));

...不起作用

缓存目录中的标记文件如下所示:

strokercache_route_home/client
strokercache_controller_ClientCms\Controller\Cms
strokercache_param_action_index
strokercache_param_client_foo
4

1 回答 1

1

答案很简单:请使用 ever 标签作为自己的数组元素:

$cs->clearByTags(array(
    'controller_ClientCms\Controller\Cms',
    'param_action_index',
    'param_client_foo',
));

由于我不使用该模块,因此无法对其进行测试,但经过快速代码审查后,它应该可以工作。见https://github.com/bramstroker/zf2-fullpage-cache/blob/master/src/StrokerCache/Controller/CacheController.php#L41

于 2015-02-16T10:51:18.703 回答