Php Zend缓存后端静态删除/清除
我正在尝试使用Zend cache实现缓存。我使用以下代码初始化缓存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' =>
$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');