大道达人 发表于 2011-8-2 17:37:58

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

默认的CIcache目录为 $APP.cache,存在index.html,和.htaccess
当写入$this->cache->file->clean();删除文件缓存后调用delete_files
直接把cache目录全部清空,
这里的处理逻辑是否有点轻率,还是在调用delete_files配置可以忽略的文件?

Hex 发表于 2011-8-2 18:01:23

这里你可以认为是轻率,呵呵
这里确实是把文件全部删除了,但是这样并不会有什么太大的影响,你可以去修改这部分代码,呵呵,或者实现自己的 缓存适配器。

大道达人 发表于 2011-8-2 23:55:24

Hex 发表于 2011-8-2 18:01 static/image/common/back.gif
这里你可以认为是轻率,呵呵
这里确实是把文件全部删除了,但是这样并不会有什么太大的影响,你可以去修改 ...

:$3q~~~

ciogao 发表于 2011-9-4 16:26:44

对原有的缓存适配器做一下修改

gejiangs 发表于 2011-9-29 11:02:18

想求CI对缓存的单一删除有啥好办法没?

大道达人 发表于 2012-2-20 14:52:55

      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;


liyi 发表于 2012-3-6 12:57:32

:D 不错,学习了

spt119 发表于 2012-5-12 01:28:26

地板的方式是一种方式。
看楼主的意思,是在清空缓存目录时,保留index.html和.htaccess文件。
其实楼主应该关注一下config目录的下mime文件,然后通过文件的mime来确定删除的文件类型。
页: [1]
查看完整版本: CI2.0中 缓存清空的一点疑问