Php Zend缓存后端静态删除/清除

Php Zend缓存后端静态删除/清除,php,zend-framework,zend-cache,Php,Zend Framework,Zend Cache,我正在尝试使用Zend cache实现缓存。我使用以下代码初始化缓存 $tagCache = Zend_Cache::factory('Core', 'File', array('automatic_serialization' => true), array('cache_dir' =>

我正在尝试使用Zend cache实现缓存。我使用以下代码初始化缓存

$tagCache = Zend_Cache::factory('Core',
                                'File',
                                 array('automatic_serialization' => true),
                                 array('cache_dir' => $cfg['instdir']. 'Cache_dir'));

$cache = Zend_Cache::factory('Capture',
                             'Static',
                              array(),
                              array('index_filename' => 'index',
                                    'public_dir'     => $cfg['instdir'] . 'Cached',
                                    'tag_cache'      => $tagCache));

我使用以下代码开始缓存:

$id = bin2hex($_SERVER["REQUEST_URI"]);
$cache->start($id, array());
缓存文件已生成,但我无法使用
remove()
方法删除它们(缓存不会刷新):

我做错了什么? 谢谢。

$cache->remove()
是后端的
remove()
方法的代理。在本例中,您使用的是
静态
后端,因此我们在那里查看以了解发生了什么

我对该方法的理解使我相信
$id
参数
remove
必须是一个文件名,因此:

$cache->remove('index'); 
会有用的


清除缓存更常用的方法是使用
clean()
方法。请参阅。

是否有任何与权限相关的错误输出到错误日志?您是否验证了$id值是否完全相同?(对于start()和remove())我的日志中没有任何错误。我查过身份证了。。。我甚至为ID创建了一个带有一些硬编码值的测试文件。但是没有运气。我已经打开了一些缓存文件,它们似乎是按它们应该的方式创建的……但是当我想要删除它们时,什么也没有发生。缓存目录具有必要的读写权限。是否围绕remove()调用包装try/catch块?您可能需要仔细研究他们的API文档来发现问题,结果是您必须将缓存文件的路径传递给remove方法才能使其工作。尽管Zend文档说它需要一个缓存id。无论如何,如果其他人有类似的问题。。。。只需添加$id=$this->\u decodeId($id);指向Static.php后端中的remove方法。这是一个断开的链接:/
$cache->remove('index');