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()); } }
public function __construct() { $this->_redis = Kwf_Cache_Simple::getRedis(); }