CakePHP 1.3在添加新帖子后清除所有缓存页面
发布时间:2020-12-13 22:51:46 所属栏目:PHP教程 来源:网络整理
导读:我正在使用Cake PHP 1.3并尝试为视图页面启用缓存,缓存系统工作正常并缓存所有页面.但是当我们添加一个新帖子(向数据库插入新记录)或编辑旧帖子(更新表的记录)时,CakePHP将删除所有缓存页面,而不仅仅是已编辑的页面! app / config / core.php: Cache::conf
我正在使用Cake
PHP 1.3并尝试为视图页面启用缓存,缓存系统工作正常并缓存所有页面.但是当我们添加一个新帖子(向数据库插入新记录)或编辑旧帖子(更新表的记录)时,CakePHP将删除所有缓存页面,而不仅仅是已编辑的页面!
app / config / core.php: Cache::config('default',array('engine' => 'File','duration' => 8640000)); app / controllers / articles_controller.php: var $helpers = array('Cache'); var $cacheAction = array( 'view' => array('duration' => 8640000),'latest' => array('duration' => 8640000),); 我怎么能告诉Cake只删除已更改页面的缓存版本而不是所有缓存页面? 解决方法
这实际上非常难,所以我不能只给你一段代码来解决这个问题.您需要编辑管理缓存的lib文件夹中的实际cake文件.注意:这是超级蛋糕人不推荐的.但是,lib / Cake / Cache / Engine / FileEngine.php是具有文件引擎操作的文件.您似乎对删除功能感兴趣:
/** * Delete a key from the cache * * @param string $key Identifier for the data * @return boolean True if the value was successfully deleted,false if it didn't exist or couldn't be removed */ public function delete($key) { if ($this->_setKey($key) === false || !$this->_init) { return false; } $path = $this->_File->getRealPath(); $this->_File = null; //@codingStandardsIgnoreStart return @unlink($path); //@codingStandardsIgnoreEnd } 此外,不是编辑核心蛋糕文件,您可以添加自己的文件引擎,并通过移动代码并在那里扩展代码来使用蛋糕引擎的分离(这在开源中非常酷). 通过阅读用于实现文件缓存引擎的代码,您也可以找到实际的解决方案.祝好运. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |