aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--actions/DisplayAction.php10
-rw-r--r--actions/SetBridgeCacheAction.php4
-rw-r--r--bridges/ElloBridge.php4
-rw-r--r--bridges/InstagramBridge.php4
-rw-r--r--bridges/SoundcloudBridge.php4
-rw-r--r--bridges/SpotifyBridge.php4
-rw-r--r--bridges/TwitterBridge.php14
-rw-r--r--lib/BridgeAbstract.php8
-rw-r--r--lib/RssBridge.php16
-rw-r--r--lib/contents.php8
10 files changed, 34 insertions, 42 deletions
diff --git a/actions/DisplayAction.php b/actions/DisplayAction.php
index ba87586b..cc910b45 100644
--- a/actions/DisplayAction.php
+++ b/actions/DisplayAction.php
@@ -87,9 +87,7 @@ class DisplayAction implements ActionInterface
)
);
- $cacheFactory = new CacheFactory();
-
- $cache = $cacheFactory->create();
+ $cache = RssBridge::getCache();
$cache->setScope('');
$cache->setKey($cache_params);
// This cache purge will basically delete all cache items older than 24h, regardless of scope and key
@@ -166,6 +164,9 @@ class DisplayAction implements ActionInterface
}
}
+ // Unfortunately need to set scope and key again because they might be modified
+ $cache->setScope('');
+ $cache->setKey($cache_params);
$cache->saveData([
'items' => array_map(function (FeedItem $item) {
return $item->toArray();
@@ -212,8 +213,7 @@ class DisplayAction implements ActionInterface
private static function logBridgeError($bridgeName, $code)
{
- $cacheFactory = new CacheFactory();
- $cache = $cacheFactory->create();
+ $cache = RssBridge::getCache();
$cache->setScope('error_reporting');
$cache->setkey([$bridgeName . '_' . $code]);
diff --git a/actions/SetBridgeCacheAction.php b/actions/SetBridgeCacheAction.php
index 2f60fbc4..a9a598bd 100644
--- a/actions/SetBridgeCacheAction.php
+++ b/actions/SetBridgeCacheAction.php
@@ -35,9 +35,7 @@ class SetBridgeCacheAction implements ActionInterface
$bridge->loadConfiguration();
$value = $request['value'];
- $cacheFactory = new CacheFactory();
-
- $cache = $cacheFactory->create();
+ $cache = RssBridge::getCache();
$cache->setScope(get_class($bridge));
if (!is_array($key)) {
// not sure if $key is an array when it comes in from request
diff --git a/bridges/ElloBridge.php b/bridges/ElloBridge.php
index c45e554a..4cc1858b 100644
--- a/bridges/ElloBridge.php
+++ b/bridges/ElloBridge.php
@@ -113,9 +113,7 @@ class ElloBridge extends BridgeAbstract
private function getAPIKey()
{
- $cacheFactory = new CacheFactory();
-
- $cache = $cacheFactory->create();
+ $cache = RssBridge::getCache();
$cache->setScope('ElloBridge');
$cache->setKey(['key']);
$key = $cache->loadData();
diff --git a/bridges/InstagramBridge.php b/bridges/InstagramBridge.php
index 1bfa2472..71431906 100644
--- a/bridges/InstagramBridge.php
+++ b/bridges/InstagramBridge.php
@@ -98,9 +98,7 @@ class InstagramBridge extends BridgeAbstract
return $username;
}
- $cacheFactory = new CacheFactory();
-
- $cache = $cacheFactory->create();
+ $cache = RssBridge::getCache();
$cache->setScope('InstagramBridge');
$cache->setKey([$username]);
$key = $cache->loadData();
diff --git a/bridges/SoundcloudBridge.php b/bridges/SoundcloudBridge.php
index 09fc7b21..c9f55e9e 100644
--- a/bridges/SoundcloudBridge.php
+++ b/bridges/SoundcloudBridge.php
@@ -122,9 +122,7 @@ HTML;
return;
}
- $cacheFactory = new CacheFactory();
-
- $this->clientIDCache = $cacheFactory->create();
+ $this->clientIDCache = RssBridge::getCache();
$this->clientIDCache->setScope('SoundCloudBridge');
$this->clientIDCache->setKey(['client_id']);
}
diff --git a/bridges/SpotifyBridge.php b/bridges/SpotifyBridge.php
index 48d225a7..170f4c86 100644
--- a/bridges/SpotifyBridge.php
+++ b/bridges/SpotifyBridge.php
@@ -190,9 +190,7 @@ class SpotifyBridge extends BridgeAbstract
private function getToken()
{
- $cacheFactory = new CacheFactory();
-
- $cache = $cacheFactory->create();
+ $cache = RssBridge::getCache();
$cache->setScope('SpotifyBridge');
$cacheKey = sprintf('%s:%s', $this->getInput('clientid'), $this->getInput('clientsecret'));
diff --git a/bridges/TwitterBridge.php b/bridges/TwitterBridge.php
index 381dad76..befb8064 100644
--- a/bridges/TwitterBridge.php
+++ b/bridges/TwitterBridge.php
@@ -223,9 +223,7 @@ EOD
// Try to get all tweets
switch ($this->queriedContext) {
case 'By username':
- $cacheFactory = new CacheFactory();
- $cache = $cacheFactory->create();
-
+ $cache = RssBridge::getCache();
$cache->setScope('twitter');
$cache->setKey(['cache']);
// todo: inspect mtime instead of purging with 3h
@@ -512,9 +510,7 @@ EOD;
//This function takes 2 requests, and therefore is cached
private function getApiKey($forceNew = 0)
{
- $cacheFactory = new CacheFactory();
-
- $r_cache = $cacheFactory->create();
+ $r_cache = RssBridge::getCache();
$scope = 'TwitterBridge';
$r_cache->setScope($scope);
$r_cache->setKey(['refresh']);
@@ -530,7 +526,7 @@ EOD;
$cacheFactory = new CacheFactory();
- $cache = $cacheFactory->create();
+ $cache = RssBridge::getCache();
$cache->setScope($scope);
$cache->setKey(['api_key']);
$data = $cache->loadData();
@@ -565,9 +561,7 @@ EOD;
$apiKey = $data;
}
- $cacheFac2 = new CacheFactory();
-
- $gt_cache = $cacheFactory->create();
+ $gt_cache = RssBridge::getCache();
$gt_cache->setScope($scope);
$gt_cache->setKey(['guest_token']);
$guestTokenUses = $gt_cache->loadData();
diff --git a/lib/BridgeAbstract.php b/lib/BridgeAbstract.php
index 21206a7b..3a2c47f2 100644
--- a/lib/BridgeAbstract.php
+++ b/lib/BridgeAbstract.php
@@ -415,9 +415,7 @@ abstract class BridgeAbstract implements BridgeInterface
*/
protected function loadCacheValue(string $key, $duration = null)
{
- $cacheFactory = new CacheFactory();
-
- $cache = $cacheFactory->create();
+ $cache = RssBridge::getCache();
// Create class name without the namespace part
$scope = $this->getShortName();
$cache->setScope($scope);
@@ -441,9 +439,7 @@ abstract class BridgeAbstract implements BridgeInterface
*/
protected function saveCacheValue(string $key, $value)
{
- $cacheFactory = new CacheFactory();
-
- $cache = $cacheFactory->create();
+ $cache = RssBridge::getCache();
$scope = $this->getShortName();
$cache->setScope($scope);
$cache->setKey([$key]);
diff --git a/lib/RssBridge.php b/lib/RssBridge.php
index 1610e48d..79d1d710 100644
--- a/lib/RssBridge.php
+++ b/lib/RssBridge.php
@@ -2,6 +2,8 @@
final class RssBridge
{
+ private static CacheInterface $cache;
+
public function main(array $argv = [])
{
if ($argv) {
@@ -69,6 +71,10 @@ final class RssBridge
// Consider: ini_set('error_reporting', E_ALL & ~E_DEPRECATED);
date_default_timezone_set(Configuration::getConfig('system', 'timezone'));
+ // Create cache
+ $cacheFactory = new CacheFactory();
+ self::setCache($cacheFactory->create());
+
if (Configuration::getConfig('authentication', 'enable')) {
$authenticationMiddleware = new AuthenticationMiddleware();
$authenticationMiddleware();
@@ -98,4 +104,14 @@ final class RssBridge
$response->send();
}
}
+
+ public static function getCache(): CacheInterface
+ {
+ return self::$cache;
+ }
+
+ public static function setCache(CacheInterface $cache): void
+ {
+ self::$cache = $cache;
+ }
}
diff --git a/lib/contents.php b/lib/contents.php
index b54bc9fe..67ad2d3f 100644
--- a/lib/contents.php
+++ b/lib/contents.php
@@ -99,9 +99,7 @@ function getContents(
array $curlOptions = [],
bool $returnFull = false
) {
- $cacheFactory = new CacheFactory();
-
- $cache = $cacheFactory->create();
+ $cache = RssBridge::getCache();
$cache->setScope('server');
$cache->setKey([$url]);
@@ -419,9 +417,7 @@ function getSimpleHTMLDOMCached(
$defaultBRText = DEFAULT_BR_TEXT,
$defaultSpanText = DEFAULT_SPAN_TEXT
) {
- $cacheFactory = new CacheFactory();
-
- $cache = $cacheFactory->create();
+ $cache = RssBridge::getCache();
$cache->setScope('pages');
$cache->setKey([$url]);