|
|
<?php |
|
|
|
|
|
namespace Kanboard\Core\Cache; |
|
|
|
|
|
use Kanboard\Core\Tool; |
|
|
use LogicException; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class FileCache extends BaseCache |
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function set($key, $value) |
|
|
{ |
|
|
$this->createCacheFolder(); |
|
|
file_put_contents($this->getFilenameFromKey($key), serialize($value)); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function get($key) |
|
|
{ |
|
|
$filename = $this->getFilenameFromKey($key); |
|
|
|
|
|
if (file_exists($filename)) { |
|
|
return unserialize(file_get_contents($filename)); |
|
|
} |
|
|
|
|
|
return null; |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function flush() |
|
|
{ |
|
|
$this->createCacheFolder(); |
|
|
Tool::removeAllFiles(CACHE_DIR, false); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function remove($key) |
|
|
{ |
|
|
$filename = $this->getFilenameFromKey($key); |
|
|
|
|
|
if (file_exists($filename)) { |
|
|
unlink($filename); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
protected function getFilenameFromKey($key) |
|
|
{ |
|
|
return CACHE_DIR.DIRECTORY_SEPARATOR.$key; |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
protected function createCacheFolder() |
|
|
{ |
|
|
if (! is_dir(CACHE_DIR)) { |
|
|
if (! mkdir(CACHE_DIR, 0755)) { |
|
|
throw new LogicException('Unable to create cache directory: '.CACHE_DIR); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|