public function clean()
 {
     $be = Kwf_Cache_Simple::getBackend();
     if ($be == 'memcache') {
         $prefix = Kwf_Cache_Simple::getUniquePrefix() . '-media-';
         foreach ($this->_getSecondLevelCache()->getIds() as $id) {
             Kwf_Cache_Simple::getMemcache()->delete($prefix . $id);
         }
     } else {
         if ($be == 'redis') {
             $prefixLength = strlen(Kwf_Cache_Simple::getRedis()->_prefix(''));
             $it = null;
             while ($keys = Kwf_Cache_Simple::getRedis()->scan($it, Kwf_Cache_Simple::getRedis()->_prefix('media:*'))) {
                 foreach ($keys as $k => $i) {
                     $keys[$k] = substr($i, $prefixLength);
                 }
                 Kwf_Cache_Simple::getRedis()->delete($keys);
             }
         } else {
             if ($be == 'file') {
                 //use secondlevel cache only
             } else {
                 foreach ($this->_getSecondLevelCache()->getIds() as $id) {
                     Kwf_Cache_Simple::delete('media-' . $id);
                 }
             }
         }
     }
     $this->_getSecondLevelCache()->clean();
     $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(Kwf_Config::getValue('mediaCacheDir'), RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST);
     foreach ($files as $fileinfo) {
         if ($fileinfo->getFilename() == '.gitignore') {
             continue;
         }
         $todo = $fileinfo->isDir() ? 'rmdir' : 'unlink';
         $todo($fileinfo->getRealPath());
     }
 }
示例#2
0
 public function __construct()
 {
     $this->_redis = Kwf_Cache_Simple::getRedis();
 }