summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--classes/cache/adapter.php3
-rw-r--r--classes/cache/local.php2
-rw-r--r--classes/diskcache.php29
-rwxr-xr-xclasses/rssutils.php3
4 files changed, 21 insertions, 16 deletions
diff --git a/classes/cache/adapter.php b/classes/cache/adapter.php
index a61e5cb83..514a14685 100644
--- a/classes/cache/adapter.php
+++ b/classes/cache/adapter.php
@@ -9,7 +9,6 @@ interface Cache_Adapter {
* @return int|false -1 if the file doesn't exist, false if an error occurred, size in bytes otherwise
*/
public function get_size(string $filename);
-
/**
* @return int|false -1 if the file doesn't exist, false if an error occurred, timestamp otherwise
*/
@@ -30,5 +29,7 @@ interface Cache_Adapter {
* @return bool|int false if the file doesn't exist (or unreadable) or isn't audio/video, true if a plugin handled, otherwise int of bytes sent
*/
public function send(string $filename);
+
+ /** Catchall function to expire all subfolders/prefixes in the cache, invoked on the backend */
public function expire_all(): void;
}
diff --git a/classes/cache/local.php b/classes/cache/local.php
index 62f33662a..fb8aed529 100644
--- a/classes/cache/local.php
+++ b/classes/cache/local.php
@@ -94,7 +94,7 @@ class Cache_Local implements Cache_Adapter {
if ($files) {
foreach ($files as $file) {
- if (time() - filemtime($file) > 86400*Config::get(Config::CACHE_MAX_DAYS)) {
+ if (time() - filemtime($file) > 86400 * Config::get(Config::CACHE_MAX_DAYS)) {
unlink($file);
++$num_deleted;
diff --git a/classes/diskcache.php b/classes/diskcache.php
index 80c73682f..70c3b7e2c 100644
--- a/classes/diskcache.php
+++ b/classes/diskcache.php
@@ -210,14 +210,17 @@ class DiskCache implements Cache_Adapter {
$this->adapter->set_dir($dir);
}
- public function get_mtime(string $filename) {
- return $this->adapter->get_mtime($filename);
- }
-
public function set_dir(string $dir) : void {
$this->adapter->set_dir($dir);
}
+ /**
+ * @return int|false -1 if the file doesn't exist, false if an error occurred, timestamp otherwise
+ */
+ public function get_mtime(string $filename) {
+ return $this->adapter->get_mtime($filename);
+ }
+
public function make_dir(): bool {
return $this->adapter->make_dir();
}
@@ -230,10 +233,18 @@ class DiskCache implements Cache_Adapter {
return $this->adapter->exists($filename);
}
+ /**
+ * @return int|false -1 if the file doesn't exist, false if an error occurred, size in bytes otherwise
+ */
public function get_size(string $filename) {
return $this->adapter->get_size($filename);
}
+ /**
+ * @param mixed $data
+ *
+ * @return int|false Bytes written or false if an error occurred.
+ */
public function put(string $filename, $data) {
return $this->adapter->put($filename, $data);
}
@@ -250,11 +261,6 @@ class DiskCache implements Cache_Adapter {
return $this->adapter->get($filename);
}
- static function expire(): void {
- $adapter = new Cache_Local();
- $adapter->expire_all();
- }
-
public function expire_all(): void {
$this->adapter->expire_all();
}
@@ -283,9 +289,6 @@ class DiskCache implements Cache_Adapter {
return false;
}
- /**
- * @return bool|int false if the file doesn't exist (or unreadable) or isn't audio/video, true if a plugin handled, otherwise int of bytes sent
- */
public function send(string $filename) {
$mimetype = $this->adapter->get_mime_type($filename);
@@ -324,7 +327,7 @@ class DiskCache implements Cache_Adapter {
}
public function get_fake_extension(string $filename): string {
- $mimetype = $this->get_mime_type($filename);
+ $mimetype = $this->adapter->get_mime_type($filename);
if ($mimetype)
return isset($this->mimeMap[$mimetype]) ? $this->mimeMap[$mimetype] : "";
diff --git a/classes/rssutils.php b/classes/rssutils.php
index 15efa77bd..22859791d 100755
--- a/classes/rssutils.php
+++ b/classes/rssutils.php
@@ -1673,7 +1673,8 @@ class RSSUtils {
}
static function housekeeping_common(): void {
- DiskCache::expire();
+ $cache = new DiskCache("");
+ $cache->expire_all();
self::expire_lock_files();
self::expire_error_log();