用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4295|回复: 7
收起左侧

[Web] CI2.0中 缓存清空的一点疑问

[复制链接]
发表于 2011-8-2 17:37:58 | 显示全部楼层 |阅读模式
默认的CIcache目录为 $APP.cache,存在index.html,和.htaccess
当写入$this->cache->file->clean();删除文件缓存后调用delete_files
直接把cache目录全部清空,
这里的处理逻辑是否有点轻率,还是在调用delete_files配置可以忽略的文件?
发表于 2011-8-2 18:01:23 | 显示全部楼层
这里你可以认为是轻率,呵呵
这里确实是把文件全部删除了,但是这样并不会有什么太大的影响,你可以去修改这部分代码,呵呵,或者实现自己的 缓存适配器。
 楼主| 发表于 2011-8-2 23:55:24 | 显示全部楼层
Hex 发表于 2011-8-2 18:01
这里你可以认为是轻率,呵呵
这里确实是把文件全部删除了,但是这样并不会有什么太大的影响,你可以去修改 ...

3q~~~
发表于 2011-9-4 16:26:44 CI中国手机版 | 显示全部楼层
对原有的缓存适配器做一下修改
发表于 2011-9-29 11:02:18 | 显示全部楼层
想求CI对缓存的单一删除有啥好办法没?
 楼主| 发表于 2012-2-20 14:52:55 | 显示全部楼层
PHP复制代码
        public function delete_cache($url = "")
        {
 
                 $url = trim($url, "/");
 
                $this->_delete_cache($url);
 
        }
       
       
        public function _delete_cache($url)
        {
 
                $CI =& get_instance();
 
                $path = $CI->config->item('cache_path');
 
                $cache_path = ($path == '') ? APPPATH.'cache/' : $path;
 
                $uri =  $CI->config->item('base_url').
 
                $CI->config->item('index_page').$url;
 
                $filepath = $cache_path.md5($uri);
 
                if ( ! @file_exists($filepath))
                {
                        return FALSE;
                }               if ( ! $fp = @fopen($filepath, FOPEN_READ))
                {
                        return FALSE;
                }
 
                if (is_really_writable($cache_path))
                {
 
                        @unlink($filepath);
 
                        log_message('debug', "Cache file has deleted.");
 
                        return TRUE;
 
                }
 
                return FALSE;
 
 
复制代码

发表于 2012-3-6 12:57:32 | 显示全部楼层
不错,学习了
发表于 2012-5-12 01:28:26 | 显示全部楼层
地板的方式是一种方式。
看楼主的意思,是在清空缓存目录时,保留index.html和.htaccess文件。
其实楼主应该关注一下config目录的下mime文件,然后通过文件的mime来确定删除的文件类型。

本版积分规则