summaryrefslogtreecommitdiff
path: root/inc/cache.php
diff options
context:
space:
mode:
authorSimon McFarlane <simon@piston.pw>2015-06-01 16:08:19 -0700
committerSimon McFarlane <simon@piston.pw>2015-06-01 16:08:19 -0700
commit209bc5400144e448e95a68e01d842c6fab53ae71 (patch)
treeab4cc6ad241e8daccb546514330d3a5f2906e846 /inc/cache.php
parentd1c1e5a589f30d640f5eb6303e7059105a6297f8 (diff)
parent7ab9cc43d101ed002bce392beefe1c435ab2d5b1 (diff)
Merge pull request #18 from lainchan/vichan-merge
Merge with the latest upstream vichan
Diffstat (limited to 'inc/cache.php')
-rw-r--r--inc/cache.php27
1 files changed, 27 insertions, 0 deletions
diff --git a/inc/cache.php b/inc/cache.php
index d1200919..852aefa2 100644
--- a/inc/cache.php
+++ b/inc/cache.php
@@ -50,6 +50,17 @@ class Cache {
case 'php':
$data = isset(self::$cache[$key]) ? self::$cache[$key] : false;
break;
+ case 'fs':
+ $key = str_replace('/', '::', $key);
+ $key = str_replace("\0", '', $key);
+ if (!file_exists('tmp/cache/'.$key)) {
+ $data = false;
+ }
+ else {
+ $data = file_get_contents('tmp/cache/'.$key);
+ $data = json_decode($data, true);
+ }
+ break;
case 'redis':
if (!self::$cache)
self::init();
@@ -87,6 +98,11 @@ class Cache {
case 'xcache':
xcache_set($key, $value, $expires);
break;
+ case 'fs':
+ $key = str_replace('/', '::', $key);
+ $key = str_replace("\0", '', $key);
+ file_put_contents('tmp/cache/'.$key, json_encode($value));
+ break;
case 'php':
self::$cache[$key] = $value;
break;
@@ -113,6 +129,11 @@ class Cache {
case 'xcache':
xcache_unset($key);
break;
+ case 'fs':
+ $key = str_replace('/', '::', $key);
+ $key = str_replace("\0", '', $key);
+ @unlink('tmp/cache/'.$key);
+ break;
case 'php':
unset(self::$cache[$key]);
break;
@@ -134,6 +155,12 @@ class Cache {
case 'php':
self::$cache = array();
break;
+ case 'fs':
+ $files = glob('tmp/cache/*');
+ foreach ($files as $file) {
+ unlink($file);
+ }
+ break;
case 'redis':
if (!self::$cache)
self::init();