add OC_Cache::clear

This commit is contained in:
Robin Appelman 2012-06-05 19:57:49 +02:00
parent 10eef49c3c
commit e11bf460e0
2 changed files with 26 additions and 4 deletions

View file

@ -37,4 +37,11 @@ class OC_Cache {
return self::$cache->remove($key); return self::$cache->remove($key);
} }
static public function clear() {
if (!self::$cache) {
self::init();
}
return self::$cache->clear();
}
} }

23
lib/cache/file.php vendored
View file

@ -7,7 +7,7 @@
*/ */
class OC_Cache_File extends OC_Cache { class OC_Cache_File{
protected function getStorage() { protected function getStorage() {
if(OC_User::isLoggedIn()){ if(OC_User::isLoggedIn()){
$subdir = 'cache'; $subdir = 'cache';
@ -24,7 +24,7 @@ class OC_Cache_File extends OC_Cache {
public function get($key) { public function get($key) {
$storage = $this->getStorage(); $storage = $this->getStorage();
if ($storage->is_file($key)) { if ($storage and $storage->is_file($key)) {
$mtime = $storage->filemtime($key); $mtime = $storage->filemtime($key);
if ($mtime < time()) { if ($mtime < time()) {
$storage->unlink($key); $storage->unlink($key);
@ -35,9 +35,9 @@ class OC_Cache_File extends OC_Cache {
return null; return null;
} }
public function set($key, $value, $ttl) { public function set($key, $value, $ttl=0) {
$storage = $this->getStorage(); $storage = $this->getStorage();
if ($storage->file_put_contents($key, $value)) { if ($storage and $storage->file_put_contents($key, $value)) {
return $storage->touch($key, time() + $ttl); return $storage->touch($key, time() + $ttl);
} }
return false; return false;
@ -45,6 +45,21 @@ class OC_Cache_File extends OC_Cache {
public function remove($key) { public function remove($key) {
$storage = $this->getStorage(); $storage = $this->getStorage();
if(!$storage){
return false;
}
return $storage->unlink($key); return $storage->unlink($key);
} }
public function clear(){
$storage = $this->getStorage();
if($storage and $storage->is_dir('/')){
$dh=$storage->opendir('/');
while($file=readdir($dh)){
if($file!='.' and $file!='..'){
$storage->unlink('/'.$file);
}
}
}
}
} }