]> git.mxchange.org Git - friendica.git/commitdiff
CleanUp Cache namespace
authornupplaPhil <admin@philipp.info>
Sat, 18 Jan 2020 14:41:19 +0000 (15:41 +0100)
committernupplaPhil <admin@philipp.info>
Sat, 18 Jan 2020 14:41:19 +0000 (15:41 +0100)
- Introduce enum "Duration"
- Introduce enum "Type"
- Move "Cache\Cache" to "BaseCache"

38 files changed:
mod/ping.php
src/Console/Cache.php
src/Content/OEmbed.php
src/Core/BaseCache.php [new file with mode: 0644]
src/Core/Cache/APCuCache.php
src/Core/Cache/ArrayCache.php
src/Core/Cache/Cache.php [deleted file]
src/Core/Cache/DatabaseCache.php
src/Core/Cache/Duration.php [new file with mode: 0644]
src/Core/Cache/ICache.php
src/Core/Cache/IMemoryCache.php
src/Core/Cache/MemcacheCache.php
src/Core/Cache/MemcachedCache.php
src/Core/Cache/ProfilerCache.php
src/Core/Cache/RedisCache.php
src/Core/Cache/TraitCompareDelete.php
src/Core/Cache/TraitCompareSet.php
src/Core/Cache/Type.php [new file with mode: 0644]
src/Core/Lock/CacheLock.php
src/Core/Lock/DatabaseLock.php
src/Core/Lock/ILock.php
src/Core/Lock/Lock.php
src/Core/Lock/SemaphoreLock.php
src/Core/Update.php
src/Factory/CacheFactory.php
src/Factory/LockFactory.php
src/Factory/SessionFactory.php
src/Model/Photo.php
src/Model/Profile.php
src/Model/Term.php
src/Module/Search/Index.php
src/Network/Probe.php
src/Protocol/ActivityPub/Transmitter.php
src/Protocol/Diaspora.php
src/Protocol/OStatus.php
src/Util/JsonLD.php
src/Worker/SearchDirectory.php
tests/Util/DbaLockMockTrait.php

index 26d0efb376909de055b86a9d052114634b1ba9eb..6e4f32927dc3a4b9e6c5038a7d660699b751ca7d 100644 (file)
@@ -6,7 +6,7 @@
 use Friendica\App;
 use Friendica\Content\ForumManager;
 use Friendica\Content\Text\BBCode;
-use Friendica\Core\Cache\Cache;
+use Friendica\Core\Cache\Duration;
 use Friendica\Core\Config;
 use Friendica\Core\Hook;
 use Friendica\Core\L10n;
@@ -208,7 +208,7 @@ function ping_init(App $a)
                                DBA::escape(DateTimeFormat::utcNow())
                        );
                        if (DBA::isResult($ev)) {
-                               DI::cache()->set($cachekey, $ev, Cache::HOUR);
+                               DI::cache()->set($cachekey, $ev, Duration::HOUR);
                        }
                }
 
index afb549f4dc68733c66fa853b4ba698f8751f086a..5586e9eb430fd75d44045b2344c89051887c67b5 100644 (file)
@@ -4,7 +4,7 @@ namespace Friendica\Console;
 
 use Asika\SimpleConsole\CommandArgsException;
 use Friendica\App;
-use Friendica\Core\Cache\Cache as CacheClass;
+use Friendica\Core\Cache\Duration;
 use Friendica\Core\Cache\ICache;
 use RuntimeException;
 
@@ -154,7 +154,7 @@ HELP;
                if (count($this->args) >= 3) {
                        $key      = $this->getArgument(1);
                        $value    = $this->getArgument(2);
-                       $duration = intval($this->getArgument(3, CacheClass::FIVE_MINUTES));
+                       $duration = intval($this->getArgument(3, Duration::FIVE_MINUTES));
 
                        if (is_array($this->cache->get($key))) {
                                throw new RuntimeException("$key is an array and can't be set using this command.");
index 4bcb485fcf50ad039adf527c4a13576466e1f64a..18a8acb0fc822200c7034fb7d639df3b808b5c89 100644 (file)
@@ -10,7 +10,7 @@ use DOMNode;
 use DOMText;
 use DOMXPath;
 use Exception;
-use Friendica\Core\Cache\Cache;
+use Friendica\Core\Cache\Duration;
 use Friendica\Core\Config;
 use Friendica\Core\Hook;
 use Friendica\Core\L10n;
@@ -120,9 +120,9 @@ class OEmbed
                                        'content' => $json_string,
                                        'created' => DateTimeFormat::utcNow()
                                ], true);
-                               $cache_ttl = Cache::DAY;
+                               $cache_ttl = Duration::DAY;
                        } else {
-                               $cache_ttl = Cache::FIVE_MINUTES;
+                               $cache_ttl = Duration::FIVE_MINUTES;
                        }
 
                        DI::cache()->set($cache_key, $json_string, $cache_ttl);
diff --git a/src/Core/BaseCache.php b/src/Core/BaseCache.php
new file mode 100644 (file)
index 0000000..76f0c78
--- /dev/null
@@ -0,0 +1,89 @@
+<?php
+
+namespace Friendica\Core;
+
+use Friendica\Core\Cache\ICache;
+
+/**
+ * Abstract class for common used functions
+ */
+abstract class BaseCache implements ICache
+{
+       /**
+        * @var string The hostname
+        */
+       private $hostName;
+
+       public function __construct(string $hostName)
+       {
+               $this->hostName = $hostName;
+       }
+
+       /**
+        * Returns the prefix (to avoid namespace conflicts)
+        *
+        * @return string
+        * @throws \Exception
+        */
+       protected function getPrefix()
+       {
+               // We fetch with the hostname as key to avoid problems with other applications
+               return $this->hostName;
+       }
+
+       /**
+        * @param string $key The original key
+        * @return string        The cache key used for the cache
+        * @throws \Exception
+        */
+       protected function getCacheKey($key)
+       {
+               return $this->getPrefix() . ":" . $key;
+       }
+
+       /**
+        * @param array $keys   A list of cached keys
+        * @return array        A list of original keys
+        */
+       protected function getOriginalKeys($keys)
+       {
+               if (empty($keys)) {
+                       return [];
+               } else {
+                       // Keys are prefixed with the node hostname, let's remove it
+                       array_walk($keys, function (&$value) {
+                               $value = preg_replace('/^' . $this->hostName . ':/', '', $value);
+                       });
+
+                       sort($keys);
+
+                       return $keys;
+               }
+       }
+
+       /**
+        * Filters the keys of an array with a given prefix
+        * Returns the filtered keys as an new array
+        *
+        * @param array $keys The keys, which should get filtered
+        * @param string|null $prefix The prefix (if null, all keys will get returned)
+        *
+        * @return array The filtered array with just the keys
+        */
+       protected function filterArrayKeysByPrefix(array $keys, string $prefix = null)
+       {
+               if (empty($prefix)) {
+                       return $keys;
+               } else {
+                       $result = [];
+
+                       foreach ($keys as $key) {
+                               if (strpos($key, $prefix) === 0) {
+                                       array_push($result, $key);
+                               }
+                       }
+
+                       return $result;
+               }
+       }
+}
index 48880fe98609730baf77462e88af82c38e2d043f..a85afbb25bc5ff22f1a90832af63034d84fc8202 100644 (file)
@@ -3,13 +3,14 @@
 namespace Friendica\Core\Cache;
 
 use Exception;
+use Friendica\Core\BaseCache;
 
 /**
  * APCu Cache.
  *
  * @author Philipp Holzer <admin@philipp.info>
  */
-class APCuCache extends Cache implements IMemoryCache
+class APCuCache extends BaseCache implements IMemoryCache
 {
        use TraitCompareSet;
        use TraitCompareDelete;
@@ -76,7 +77,7 @@ class APCuCache extends Cache implements IMemoryCache
        /**
         * (@inheritdoc)
         */
-       public function set($key, $value, $ttl = Cache::FIVE_MINUTES)
+       public function set($key, $value, $ttl = Duration::FIVE_MINUTES)
        {
                $cachekey = $this->getCacheKey($key);
 
@@ -129,7 +130,7 @@ class APCuCache extends Cache implements IMemoryCache
        /**
         * (@inheritdoc)
         */
-       public function add($key, $value, $ttl = Cache::FIVE_MINUTES)
+       public function add($key, $value, $ttl = Duration::FIVE_MINUTES)
        {
                $cachekey = $this->getCacheKey($key);
                $cached = serialize($value);
@@ -158,6 +159,6 @@ class APCuCache extends Cache implements IMemoryCache
         */
        public function getName()
        {
-               return self::TYPE_APCU;
+               return Type::APCU;
        }
 }
index c6f3983ee2586efed12aeed3a8db4d516ccef3f7..25b96595f6dfe642376c03e501e845b120ca15c0 100644 (file)
@@ -2,6 +2,8 @@
 
 namespace Friendica\Core\Cache;
 
+use Friendica\Core\BaseCache;
+
 /**
  * Implementation of the IMemoryCache mainly for testing purpose
  *
@@ -9,7 +11,7 @@ namespace Friendica\Core\Cache;
  *
  * @package Friendica\Core\Cache
  */
-class ArrayCache extends Cache implements IMemoryCache
+class ArrayCache extends BaseCache implements IMemoryCache
 {
        use TraitCompareDelete;
 
@@ -38,7 +40,7 @@ class ArrayCache extends Cache implements IMemoryCache
        /**
         * (@inheritdoc)
         */
-       public function set($key, $value, $ttl = Cache::FIVE_MINUTES)
+       public function set($key, $value, $ttl = Duration::FIVE_MINUTES)
        {
                $this->cachedData[$key] = $value;
                return true;
@@ -70,7 +72,7 @@ class ArrayCache extends Cache implements IMemoryCache
        /**
         * (@inheritdoc)
         */
-       public function add($key, $value, $ttl = Cache::FIVE_MINUTES)
+       public function add($key, $value, $ttl = Duration::FIVE_MINUTES)
        {
                if (isset($this->cachedData[$key])) {
                        return false;
@@ -82,7 +84,7 @@ class ArrayCache extends Cache implements IMemoryCache
        /**
         * (@inheritdoc)
         */
-       public function compareSet($key, $oldValue, $newValue, $ttl = Cache::FIVE_MINUTES)
+       public function compareSet($key, $oldValue, $newValue, $ttl = Duration::FIVE_MINUTES)
        {
                if ($this->get($key) === $oldValue) {
                        return $this->set($key, $newValue);
@@ -96,6 +98,6 @@ class ArrayCache extends Cache implements IMemoryCache
         */
        public function getName()
        {
-               return self::TYPE_ARRAY;
+               return Type::ARRAY;
        }
 }
diff --git a/src/Core/Cache/Cache.php b/src/Core/Cache/Cache.php
deleted file mode 100644 (file)
index cf5b15d..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-<?php
-
-namespace Friendica\Core\Cache;
-
-/**
- * Abstract class for common used functions
- *
- * Class AbstractCache
- *
- * @package Friendica\Core\Cache
- */
-abstract class Cache implements ICache
-{
-       const TYPE_APCU      = 'apcu';
-       const TYPE_ARRAY     = 'array';
-       const TYPE_DATABASE  = 'database';
-       const TYPE_MEMCACHE  = 'memcache';
-       const TYPE_MEMCACHED = 'memcached';
-       const TYPE_REDIS     = 'redis';
-
-       const MONTH        = 2592000;
-       const WEEK         = 604800;
-       const DAY          = 86400;
-       const HOUR         = 3600;
-       const HALF_HOUR    = 1800;
-       const QUARTER_HOUR = 900;
-       const FIVE_MINUTES = 300;
-       const MINUTE       = 60;
-       const INFINITE     = 0;
-
-       /**
-        * @var string The hostname
-        */
-       private $hostName;
-
-       public function __construct(string $hostName)
-       {
-               $this->hostName = $hostName;
-       }
-
-       /**
-        * Returns the prefix (to avoid namespace conflicts)
-        *
-        * @return string
-        * @throws \Exception
-        */
-       protected function getPrefix()
-       {
-               // We fetch with the hostname as key to avoid problems with other applications
-               return $this->hostName;
-       }
-
-       /**
-        * @param string $key The original key
-        * @return string        The cache key used for the cache
-        * @throws \Exception
-        */
-       protected function getCacheKey($key)
-       {
-               return $this->getPrefix() . ":" . $key;
-       }
-
-       /**
-        * @param array $keys   A list of cached keys
-        * @return array        A list of original keys
-        */
-       protected function getOriginalKeys($keys)
-       {
-               if (empty($keys)) {
-                       return [];
-               } else {
-                       // Keys are prefixed with the node hostname, let's remove it
-                       array_walk($keys, function (&$value) {
-                               $value = preg_replace('/^' . $this->hostName . ':/', '', $value);
-                       });
-
-                       sort($keys);
-
-                       return $keys;
-               }
-       }
-
-       /**
-        * Filters the keys of an array with a given prefix
-        * Returns the filtered keys as an new array
-        *
-        * @param array $keys The keys, which should get filtered
-        * @param string|null $prefix The prefix (if null, all keys will get returned)
-        *
-        * @return array The filtered array with just the keys
-        */
-       protected function filterArrayKeysByPrefix(array $keys, string $prefix = null)
-       {
-               if (empty($prefix)) {
-                       return $keys;
-               } else {
-                       $result = [];
-
-                       foreach ($keys as $key) {
-                               if (strpos($key, $prefix) === 0) {
-                                       array_push($result, $key);
-                               }
-                       }
-
-                       return $result;
-               }
-       }
-}
index 7fbbdb5e3ec3688a7a1d4d483314b28762b7aeab..d06b74c16c2a3efd640bd227d7dc3b0891aa06a5 100644 (file)
@@ -4,13 +4,14 @@ namespace Friendica\Core\Cache;
 
 use Friendica\Database\Database;
 use Friendica\Util\DateTimeFormat;
+use Friendica\Core\BaseCache;
 
 /**
  * Database Cache
  *
  * @author Hypolite Petovan <hypolite@mrpetovan.com>
  */
-class DatabaseCache extends Cache implements ICache
+class DatabaseCache extends BaseCache implements ICache
 {
        /**
         * @var Database
@@ -71,7 +72,7 @@ class DatabaseCache extends Cache implements ICache
        /**
         * (@inheritdoc)
         */
-       public function set($key, $value, $ttl = Cache::FIVE_MINUTES)
+       public function set($key, $value, $ttl = Duration::FIVE_MINUTES)
        {
                if ($ttl > 0) {
                        $fields = [
@@ -115,6 +116,6 @@ class DatabaseCache extends Cache implements ICache
         */
        public function getName()
        {
-               return self::TYPE_DATABASE;
+               return Type::DATABASE;
        }
 }
diff --git a/src/Core/Cache/Duration.php b/src/Core/Cache/Duration.php
new file mode 100644 (file)
index 0000000..c5276f3
--- /dev/null
@@ -0,0 +1,19 @@
+<?php
+
+namespace Friendica\Core\Cache;
+
+/**
+ * Enumeration for cache durations
+ */
+abstract class Duration
+{
+       const MONTH        = 2592000;
+       const HOUR         = 3600;
+       const HALF_HOUR    = 1800;
+       const QUARTER_HOUR = 900;
+       const MINUTE       = 60;
+       const WEEK         = 604800;
+       const INFINITE     = 0;
+       const DAY          = 86400;
+       const FIVE_MINUTES = 300;
+}
index f8e98c568811af2ee019a9ff92689cdcf521327f..f83669a96b68f8bb900a84cf310eea60b62b701a 100644 (file)
@@ -36,7 +36,7 @@ interface ICache
         *
         * @return bool
         */
-       public function set($key, $value, $ttl = Cache::FIVE_MINUTES);
+       public function set($key, $value, $ttl = Duration::FIVE_MINUTES);
 
        /**
         * Delete a key from the cache
index 339f72d04a37161d1e47ae34b3a9324495ffffb8..3e78a23c2dd6ccb0898bdbeb28cfb437dec5daab 100644 (file)
@@ -19,7 +19,7 @@ interface IMemoryCache extends ICache
         * @param int    $ttl      The cache lifespan, must be one of the Cache constants
         * @return bool
         */
-       public function add($key, $value, $ttl = Cache::FIVE_MINUTES);
+       public function add($key, $value, $ttl = Duration::FIVE_MINUTES);
 
        /**
         * Compares if the old value is set and sets the new value
@@ -31,7 +31,7 @@ interface IMemoryCache extends ICache
         *
         * @return bool
         */
-       public function compareSet($key, $oldValue, $newValue, $ttl = Cache::FIVE_MINUTES);
+       public function compareSet($key, $oldValue, $newValue, $ttl = Duration::FIVE_MINUTES);
 
        /**
         * Compares if the old value is set and removes it
index 5bf231b398d75281e51208ed55e4766f57e6f6c4..b3182a4e403cce4502623c3d611ddc7c3cb57e37 100644 (file)
@@ -3,6 +3,7 @@
 namespace Friendica\Core\Cache;
 
 use Exception;
+use Friendica\Core\BaseCache;
 use Friendica\Core\Config\IConfiguration;
 use Memcache;
 
@@ -11,7 +12,7 @@ use Memcache;
  *
  * @author Hypolite Petovan <hypolite@mrpetovan.com>
  */
-class MemcacheCache extends Cache implements IMemoryCache
+class MemcacheCache extends BaseCache implements IMemoryCache
 {
        use TraitCompareSet;
        use TraitCompareDelete;
@@ -84,7 +85,7 @@ class MemcacheCache extends Cache implements IMemoryCache
        /**
         * (@inheritdoc)
         */
-       public function set($key, $value, $ttl = Cache::FIVE_MINUTES)
+       public function set($key, $value, $ttl = Duration::FIVE_MINUTES)
        {
                $cachekey = $this->getCacheKey($key);
 
@@ -129,7 +130,7 @@ class MemcacheCache extends Cache implements IMemoryCache
        /**
         * (@inheritdoc)
         */
-       public function add($key, $value, $ttl = Cache::FIVE_MINUTES)
+       public function add($key, $value, $ttl = Duration::FIVE_MINUTES)
        {
                $cachekey = $this->getCacheKey($key);
                return $this->memcache->add($cachekey, serialize($value), MEMCACHE_COMPRESSED, $ttl);
@@ -140,6 +141,6 @@ class MemcacheCache extends Cache implements IMemoryCache
         */
        public function getName()
        {
-               return self::TYPE_MEMCACHE;
+               return Type::MEMCACHE;
        }
 }
index 5476e3766acf1e7d119ddc8217876d8c55418dd8..29a21c1ad39881bf0e4b62c1ed267f9b6fac7f95 100644 (file)
@@ -3,6 +3,7 @@
 namespace Friendica\Core\Cache;
 
 use Exception;
+use Friendica\Core\BaseCache;
 use Friendica\Core\Config\IConfiguration;
 use Memcached;
 use Psr\Log\LoggerInterface;
@@ -12,7 +13,7 @@ use Psr\Log\LoggerInterface;
  *
  * @author Hypolite Petovan <hypolite@mrpetovan.com>
  */
-class MemcachedCache extends Cache implements IMemoryCache
+class MemcachedCache extends BaseCache implements IMemoryCache
 {
        use TraitCompareSet;
        use TraitCompareDelete;
@@ -102,7 +103,7 @@ class MemcachedCache extends Cache implements IMemoryCache
        /**
         * (@inheritdoc)
         */
-       public function set($key, $value, $ttl = Cache::FIVE_MINUTES)
+       public function set($key, $value, $ttl = Duration::FIVE_MINUTES)
        {
                $cachekey = $this->getCacheKey($key);
 
@@ -145,7 +146,7 @@ class MemcachedCache extends Cache implements IMemoryCache
        /**
         * (@inheritdoc)
         */
-       public function add($key, $value, $ttl = Cache::FIVE_MINUTES)
+       public function add($key, $value, $ttl = Duration::FIVE_MINUTES)
        {
                $cachekey = $this->getCacheKey($key);
                return $this->memcached->add($cachekey, $value, $ttl);
@@ -156,6 +157,6 @@ class MemcachedCache extends Cache implements IMemoryCache
         */
        public function getName()
        {
-               return self::TYPE_MEMCACHED;
+               return Type::MEMCACHED;
        }
 }
index d59b885609d6947766c8fceb216dd8d8cfd49df6..1976d111fe6effc00c7a3647281452b2b9b284ce 100644 (file)
@@ -59,7 +59,7 @@ class ProfilerCache implements ICache, IMemoryCache
        /**
         * {@inheritDoc}
         */
-       public function set($key, $value, $ttl = Cache::FIVE_MINUTES)
+       public function set($key, $value, $ttl = Duration::FIVE_MINUTES)
        {
                $time = microtime(true);
 
@@ -101,7 +101,7 @@ class ProfilerCache implements ICache, IMemoryCache
        /**
         * {@inheritDoc}
         */
-       public function add($key, $value, $ttl = Cache::FIVE_MINUTES)
+       public function add($key, $value, $ttl = Duration::FIVE_MINUTES)
        {
                if ($this->cache instanceof IMemoryCache) {
                        $time = microtime(true);
@@ -119,7 +119,7 @@ class ProfilerCache implements ICache, IMemoryCache
        /**
         * {@inheritDoc}
         */
-       public function compareSet($key, $oldValue, $newValue, $ttl = Cache::FIVE_MINUTES)
+       public function compareSet($key, $oldValue, $newValue, $ttl = Duration::FIVE_MINUTES)
        {
                if ($this->cache instanceof IMemoryCache) {
                        $time = microtime(true);
index 7af9f3d236f13d09dfba57cc4acbad779a1a9eca..2a09a4818e7eef0e196747ffcb2ff8d01030c3f3 100644 (file)
@@ -3,6 +3,7 @@
 namespace Friendica\Core\Cache;
 
 use Exception;
+use Friendica\Core\BaseCache;
 use Friendica\Core\Config\IConfiguration;
 use Redis;
 
@@ -12,7 +13,7 @@ use Redis;
  * @author Hypolite Petovan <hypolite@mrpetovan.com>
  * @author Roland Haeder <roland@mxchange.org>
  */
-class RedisCache extends Cache implements IMemoryCache
+class RedisCache extends BaseCache implements IMemoryCache
 {
        /**
         * @var Redis
@@ -96,7 +97,7 @@ class RedisCache extends Cache implements IMemoryCache
        /**
         * (@inheritdoc)
         */
-       public function set($key, $value, $ttl = Cache::FIVE_MINUTES)
+       public function set($key, $value, $ttl = Duration::FIVE_MINUTES)
        {
                $cachekey = $this->getCacheKey($key);
 
@@ -140,7 +141,7 @@ class RedisCache extends Cache implements IMemoryCache
        /**
         * (@inheritdoc)
         */
-       public function add($key, $value, $ttl = Cache::FIVE_MINUTES)
+       public function add($key, $value, $ttl = Duration::FIVE_MINUTES)
        {
                $cachekey = $this->getCacheKey($key);
                $cached = serialize($value);
@@ -151,7 +152,7 @@ class RedisCache extends Cache implements IMemoryCache
        /**
         * (@inheritdoc)
         */
-       public function compareSet($key, $oldValue, $newValue, $ttl = Cache::FIVE_MINUTES)
+       public function compareSet($key, $oldValue, $newValue, $ttl = Duration::FIVE_MINUTES)
        {
                $cachekey = $this->getCacheKey($key);
 
@@ -199,6 +200,6 @@ class RedisCache extends Cache implements IMemoryCache
         */
        public function getName()
        {
-               return self::TYPE_REDIS;
+               return Type::REDIS;
        }
 }
index a553f875160038f23c1fc73f5c13be8873373d34..13dcaec8d50369eefd16d2125f2b33cc08aff547 100644 (file)
@@ -13,11 +13,11 @@ trait TraitCompareDelete
 {
        abstract public function get($key);
 
-       abstract public function set($key, $value, $ttl = Cache::FIVE_MINUTES);
+       abstract public function set($key, $value, $ttl = Duration::FIVE_MINUTES);
 
        abstract public function delete($key);
 
-       abstract public function add($key, $value, $ttl = Cache::FIVE_MINUTES);
+       abstract public function add($key, $value, $ttl = Duration::FIVE_MINUTES);
 
        /**
         * NonNative - Compares if the old value is set and removes it
index 9c192d95290c58ac33399af54264057bb3966bf4..0d18226504e7b1bc01ae6ae9c6dd84bd7f353931 100644 (file)
@@ -13,11 +13,11 @@ trait TraitCompareSet
 {
        abstract public function get($key);
 
-       abstract public function set($key, $value, $ttl = Cache::FIVE_MINUTES);
+       abstract public function set($key, $value, $ttl = Duration::FIVE_MINUTES);
 
        abstract public function delete($key);
 
-       abstract public function add($key, $value, $ttl = Cache::FIVE_MINUTES);
+       abstract public function add($key, $value, $ttl = Duration::FIVE_MINUTES);
 
        /**
         * NonNative - Compares if the old value is set and sets the new value
@@ -29,7 +29,7 @@ trait TraitCompareSet
         *
         * @return bool
         */
-       public function compareSet($key, $oldValue, $newValue, $ttl = Cache::FIVE_MINUTES) {
+       public function compareSet($key, $oldValue, $newValue, $ttl = Duration::FIVE_MINUTES) {
                if ($this->add($key . "_lock", true)) {
                        if ($this->get($key) === $oldValue) {
                                $this->set($key, $newValue, $ttl);
diff --git a/src/Core/Cache/Type.php b/src/Core/Cache/Type.php
new file mode 100644 (file)
index 0000000..2134796
--- /dev/null
@@ -0,0 +1,16 @@
+<?php
+
+namespace Friendica\Core\Cache;
+
+/**
+ * Enumeration for cache types
+ */
+abstract class Type
+{
+       const APCU      = 'apcu';
+       const REDIS     = 'redis';
+       const ARRAY     = 'array';
+       const MEMCACHE  = 'memcache';
+       const DATABASE  = 'database';
+       const MEMCACHED = 'memcached';
+}
index 3eb0af765c6053490afc61b89c014a76ff9f75bc..3fec76562cb814ef02f27d64800f80b0d6097f34 100644 (file)
@@ -30,7 +30,7 @@ class CacheLock extends Lock
        /**
         * (@inheritdoc)
         */
-       public function acquire($key, $timeout = 120, $ttl = Cache\Cache::FIVE_MINUTES)
+       public function acquire($key, $timeout = 120, $ttl = Cache\Duration::FIVE_MINUTES)
        {
                $got_lock = false;
                $start    = time();
index eeb488fba520c1236456358b1e567a24901c1cd8..ca72db56b26797e798e54657e3a6aad251e6505e 100644 (file)
@@ -2,7 +2,7 @@
 
 namespace Friendica\Core\Lock;
 
-use Friendica\Core\Cache\Cache;
+use Friendica\Core\Cache\Duration;
 use Friendica\Database\Database;
 use Friendica\Util\DateTimeFormat;
 
@@ -35,7 +35,7 @@ class DatabaseLock extends Lock
        /**
         * (@inheritdoc)
         */
-       public function acquire($key, $timeout = 120, $ttl = Cache::FIVE_MINUTES)
+       public function acquire($key, $timeout = 120, $ttl = Duration::FIVE_MINUTES)
        {
                $got_lock = false;
                $start    = time();
index 121f29a4367e7472e8d102b79aa8c8ad6d0a91a4..0d3fe55fd241f2ac6497132c7e4a0cc1be51fd07 100644 (file)
@@ -30,7 +30,7 @@ interface ILock
         *
         * @return boolean Was the lock successful?
         */
-       public function acquire($key, $timeout = 120, $ttl = Cache\Cache::FIVE_MINUTES);
+       public function acquire($key, $timeout = 120, $ttl = Cache\Duration::FIVE_MINUTES);
 
        /**
         * Releases a lock if it was set by us
index 694384b72f975880d9c2f2f8dfea5f137876d57c..a124340c75985a78b5aa9c7cd432bb54b6fbe967 100644 (file)
@@ -2,7 +2,7 @@
 
 namespace Friendica\Core\Lock;
 
-use Friendica\Core\Cache\Cache;
+use Friendica\Core\Cache\Type;
 
 /**
  * Class AbstractLock
@@ -13,7 +13,7 @@ use Friendica\Core\Cache\Cache;
  */
 abstract class Lock implements ILock
 {
-       const TYPE_DATABASE  = Cache::TYPE_DATABASE;
+       const TYPE_DATABASE  = Type::DATABASE;
        const TYPE_SEMAPHORE = 'semaphore';
 
        /**
index 1a28eb357cb1f78d3c3ab48f7948c2de385a4f0c..297adad31e682541fc9e9746e59e5252bcf9a6e3 100644 (file)
@@ -36,7 +36,7 @@ class SemaphoreLock extends Lock
        /**
         * (@inheritdoc)
         */
-       public function acquire($key, $timeout = 120, $ttl = Cache\Cache::FIVE_MINUTES)
+       public function acquire($key, $timeout = 120, $ttl = Cache\Duration::FIVE_MINUTES)
        {
                self::$semaphore[$key] = sem_get(self::semaphoreKey($key));
                if (!empty(self::$semaphore[$key])) {
index 62ea573db6174d8566cfe7ed0ae65fc046ec298f..0de7db9cb54864cf0eaea543a13f461d0d3a038f 100644 (file)
@@ -7,7 +7,6 @@ use Friendica\Database\DBA;
 use Friendica\Database\DBStructure;
 use Friendica\DI;
 use Friendica\Util\Strings;
-use Friendica\Core\Cache\Cache;
 
 class Update
 {
@@ -97,7 +96,7 @@ class Update
 
                                // Compare the current structure with the defined structure
                                // If the Lock is acquired, never release it automatically to avoid double updates
-                               if (DI::lock()->acquire('dbupdate', 120, Cache::INFINITE)) {
+                               if (DI::lock()->acquire('dbupdate', 120, Cache\Duration::INFINITE)) {
 
                                        // Checks if the build changed during Lock acquiring (so no double update occurs)
                                        $retryBuild = Config::get('system', 'build', null, true);
@@ -183,7 +182,7 @@ class Update
                        // If the update fails or times-out completely you may need to
                        // delete the config entry to try again.
 
-                       if (DI::lock()->acquire('dbupdate_function', 120,Cache::INFINITE)) {
+                       if (DI::lock()->acquire('dbupdate_function', 120, Cache\Duration::INFINITE)) {
 
                                // call the specific update
                                $retval = $funcname();
index 4e4fc67915d10b94373231e5cbdeaa9ec609c13b..8cf7fcd66aa0fbdc1ddda117dab069792dd1c872 100644 (file)
@@ -22,7 +22,7 @@ class CacheFactory
        /**
         * @var string The default cache if nothing set
         */
-       const DEFAULT_TYPE = Cache\Cache::TYPE_DATABASE;
+       const DEFAULT_TYPE = Cache\Type::DATABASE;
 
        /**
         * @var IConfiguration The IConfiguration to read parameters out of the config
@@ -73,16 +73,16 @@ class CacheFactory
                }
 
                switch ($type) {
-                       case Cache\Cache::TYPE_MEMCACHE:
+                       case Cache\Type::MEMCACHE:
                                $cache = new Cache\MemcacheCache($this->hostname, $this->config);
                                break;
-                       case Cache\Cache::TYPE_MEMCACHED:
+                       case Cache\Type::MEMCACHED:
                                $cache = new Cache\MemcachedCache($this->hostname, $this->config, $this->logger);
                                break;
-                       case Cache\Cache::TYPE_REDIS:
+                       case Cache\Type::REDIS:
                                $cache = new Cache\RedisCache($this->hostname, $this->config);
                                break;
-                       case Cache\Cache::TYPE_APCU:
+                       case Cache\Type::APCU:
                                $cache = new Cache\APCuCache($this->hostname);
                                break;
                        default:
index a7e9bf429b0c0afc3dc33f3500aff4987869390d..edfc6f6bdaf7377483cef03de8c9cfb404e27253 100644 (file)
@@ -2,8 +2,8 @@
 
 namespace Friendica\Factory;
 
-use Friendica\Core\Cache\Cache;
 use Friendica\Core\Cache\IMemoryCache;
+use Friendica\Core\Cache\Type;
 use Friendica\Core\Config\IConfiguration;
 use Friendica\Core\Lock;
 use Friendica\Database\Database;
@@ -57,10 +57,10 @@ class LockFactory
 
                try {
                        switch ($lock_type) {
-                               case Cache::TYPE_MEMCACHE:
-                               case Cache::TYPE_MEMCACHED:
-                               case Cache::TYPE_REDIS:
-                               case Cache::TYPE_APCU:
+                               case Type::MEMCACHE:
+                               case Type::MEMCACHED:
+                               case Type::REDIS:
+                               case Type::APCU:
                                        $cache = $this->cacheFactory->create($lock_type);
                                        if ($cache instanceof IMemoryCache) {
                                                return new Lock\CacheLock($cache);
@@ -109,7 +109,7 @@ class LockFactory
 
                // 2. Try to use Cache Locking (don't use the DB-Cache Locking because it works different!)
                $cache_type = $this->config->get('system', 'cache_driver', 'database');
-               if ($cache_type != Cache::TYPE_DATABASE) {
+               if ($cache_type != Type::DATABASE) {
                        try {
                                $cache = $this->cacheFactory->create($cache_type);
                                if ($cache instanceof IMemoryCache) {
index 25b4c17b1f01cb71a8d0301bf0de5c39102afe84..4ca83830a6d0278197566a363166ae59f3fad3d4 100644 (file)
@@ -3,8 +3,8 @@
 namespace Friendica\Factory;
 
 use Friendica\App;
-use Friendica\Core\Cache\Cache;
 use Friendica\Core\Cache\ICache;
+use Friendica\Core\Cache\Type;
 use Friendica\Core\Config\IConfiguration;
 use Friendica\Core\Session;
 use Friendica\Core\System;
@@ -55,7 +55,7 @@ class SessionFactory
                                                break;
                                        case self::HANDLER_CACHE:
                                                // In case we're using the db as cache driver, use the native db session, not the cache
-                                               if ($config->get('system', 'cache_driver') === Cache::TYPE_DATABASE) {
+                                               if ($config->get('system', 'cache_driver') === Type::DATABASE) {
                                                        $handler = new Session\Handler\Database($dba, $logger, $server);
                                                } else {
                                                        $handler = new Session\Handler\Cache($cache, $logger, $server);
index e70ac2d97bda1c9a1493d2c1ac2b70719ea38523..400c350c1299f3acbc478c58def9198653a04a1e 100644 (file)
@@ -6,7 +6,7 @@
  */
 namespace Friendica\Model;
 
-use Friendica\Core\Cache\Cache;
+use Friendica\Core\Cache\Duration;
 use Friendica\Core\Config;
 use Friendica\Core\L10n;
 use Friendica\Core\Logger;
@@ -563,7 +563,7 @@ class Photo
                                        DBA::escape(L10n::t("Contact Photos"))
                                );
                        }
-                       DI::cache()->set($key, $albums, Cache::DAY);
+                       DI::cache()->set($key, $albums, Duration::DAY);
                }
                return $albums;
        }
@@ -576,7 +576,7 @@ class Photo
        public static function clearAlbumCache($uid)
        {
                $key = "photo_albums:".$uid.":".local_user().":".remote_user();
-               DI::cache()->set($key, null, Cache::DAY);
+               DI::cache()->set($key, null, Duration::DAY);
        }
 
        /**
index bf6da81cba2a2d6baf1ef2d43abf85ecdf23ec65..80c8481bf41c92d44e786237f0ace233ada3d783 100644 (file)
@@ -10,7 +10,7 @@ use Friendica\Content\ForumManager;
 use Friendica\Content\Text\BBCode;
 use Friendica\Content\Text\HTML;
 use Friendica\Content\Widget\ContactBlock;
-use Friendica\Core\Cache\Cache;
+use Friendica\Core\Cache\Duration;
 use Friendica\Core\Config;
 use Friendica\Core\Hook;
 use Friendica\Core\L10n;
@@ -608,7 +608,7 @@ class Profile
                        );
                        if (DBA::isResult($s)) {
                                $r = DBA::toArray($s);
-                               DI::cache()->set($cachekey, $r, Cache::HOUR);
+                               DI::cache()->set($cachekey, $r, Duration::HOUR);
                        }
                }
 
@@ -1070,7 +1070,7 @@ class Profile
                        Logger::log('URL ' . $my_url . ' already tried to authenticate.', Logger::DEBUG);
                        return;
                } else {
-                       DI::cache()->set($cachekey, true, Cache::MINUTE);
+                       DI::cache()->set($cachekey, true, Duration::MINUTE);
                }
 
                Logger::log('Not authenticated. Invoking reverse magic-auth for ' . $my_url, Logger::DEBUG);
index 669d2167c7bf106e6af2f454ac8d580e67e1787a..f4c7b9eee608300aaa09bff794685f5e4d60bbfa 100644 (file)
@@ -4,7 +4,7 @@
  */
 namespace Friendica\Model;
 
-use Friendica\Core\Cache\Cache;
+use Friendica\Core\Cache\Duration;
 use Friendica\Core\Logger;
 use Friendica\Database\DBA;
 use Friendica\DI;
@@ -84,7 +84,7 @@ class Term
 
                        if (DBA::isResult($tagsStmt)) {
                                $tags = DBA::toArray($tagsStmt);
-                               DI::cache()->set('global_trending_tags', $tags, Cache::HOUR);
+                               DI::cache()->set('global_trending_tags', $tags, Duration::HOUR);
                        }
                }
 
@@ -129,7 +129,7 @@ class Term
 
                        if (DBA::isResult($tagsStmt)) {
                                $tags = DBA::toArray($tagsStmt);
-                               DI::cache()->set('local_trending_tags', $tags, Cache::HOUR);
+                               DI::cache()->set('local_trending_tags', $tags, Duration::HOUR);
                        }
                }
 
index 995fb85d14f1b00f4793807e38ed1ea1ab72f0c0..98c593f45fd842e159b5e850713934101229702e 100644 (file)
@@ -6,7 +6,7 @@ use Friendica\Content\Nav;
 use Friendica\Content\Pager;
 use Friendica\Content\Text\HTML;
 use Friendica\Content\Widget;
-use Friendica\Core\Cache\Cache as CacheClass;
+use Friendica\Core\Cache\Duration;
 use Friendica\Core\Config;
 use Friendica\Core\L10n;
 use Friendica\Core\Logger;
@@ -56,9 +56,9 @@ class Index extends BaseSearchModule
                                if (($resultdata->time > (time() - $crawl_permit_period)) && ($resultdata->accesses > $free_crawls)) {
                                        throw new HTTPException\TooManyRequestsException(L10n::t('Only one search per minute is permitted for not logged in users.'));
                                }
-                               DI::cache()->set('remote_search:' . $remote, json_encode(['time' => time(), 'accesses' => $resultdata->accesses + 1]), CacheClass::HOUR);
+                               DI::cache()->set('remote_search:' . $remote, json_encode(['time' => time(), 'accesses' => $resultdata->accesses + 1]), Duration::HOUR);
                        } else {
-                               DI::cache()->set('remote_search:' . $remote, json_encode(['time' => time(), 'accesses' => 1]), CacheClass::HOUR);
+                               DI::cache()->set('remote_search:' . $remote, json_encode(['time' => time(), 'accesses' => 1]), Duration::HOUR);
                        }
                }
 
index e25e24593143c1f3fa19057f30e5aded2300b2a9..d54bd900a21a3833aad5f715f99f835562a63cd7 100644 (file)
@@ -11,7 +11,7 @@ namespace Friendica\Network;
 
 use DOMDocument;
 use DomXPath;
-use Friendica\Core\Cache\Cache;
+use Friendica\Core\Cache\Duration;
 use Friendica\Core\Config;
 use Friendica\Core\Logger;
 use Friendica\Core\Protocol;
@@ -414,7 +414,7 @@ class Probe
 
                // Only store into the cache if the value seems to be valid
                if (!in_array($data['network'], [Protocol::PHANTOM, Protocol::MAIL])) {
-                       DI::cache()->set('Probe::uri:' . $network . ':' . $uri, $data, Cache::DAY);
+                       DI::cache()->set('Probe::uri:' . $network . ':' . $uri, $data, Duration::DAY);
                }
 
                return $data;
index dbfd67cb0dc2474b868a4a7f878ccb995009f35c..e62b9b6e2cfb0f1f3feb0193457ef8df7225b9cc 100644 (file)
@@ -7,7 +7,7 @@ namespace Friendica\Protocol\ActivityPub;
 use Friendica\Content\Feature;
 use Friendica\Content\Text\BBCode;
 use Friendica\Content\Text\Plaintext;
-use Friendica\Core\Cache\Cache;
+use Friendica\Core\Cache\Duration;
 use Friendica\Core\Config;
 use Friendica\Core\Logger;
 use Friendica\Core\Protocol;
@@ -827,7 +827,7 @@ class Transmitter
 
                $data = ActivityPub\Transmitter::createActivityFromItem($item_id);
 
-               DI::cache()->set($cachekey, $data, Cache::QUARTER_HOUR);
+               DI::cache()->set($cachekey, $data, Duration::QUARTER_HOUR);
                return $data;
        }
 
index b3e6956f5149c76ad31d8769acf2e7d874a06d84..73f6f85f80ce13520c618063054ef3e8eb9c989b 100644 (file)
@@ -13,7 +13,7 @@ namespace Friendica\Protocol;
 use Friendica\Content\Feature;
 use Friendica\Content\Text\BBCode;
 use Friendica\Content\Text\Markdown;
-use Friendica\Core\Cache\Cache;
+use Friendica\Core\Cache\Duration;
 use Friendica\Core\Config;
 use Friendica\Core\L10n;
 use Friendica\Core\Logger;
@@ -3272,7 +3272,7 @@ class Diaspora
                Logger::log("Send participation for ".$item["guid"]." by ".$author, Logger::DEBUG);
 
                // It doesn't matter what we store, we only want to avoid sending repeated notifications for the same item
-               DI::cache()->set($cachekey, $item["guid"], Cache::QUARTER_HOUR);
+               DI::cache()->set($cachekey, $item["guid"], Duration::QUARTER_HOUR);
 
                return self::buildAndTransmit($owner, $contact, "participation", $message);
        }
@@ -3628,7 +3628,7 @@ class Diaspora
 
                $msg = ["type" => $type, "message" => $message];
 
-               DI::cache()->set($cachekey, $msg, Cache::QUARTER_HOUR);
+               DI::cache()->set($cachekey, $msg, Duration::QUARTER_HOUR);
 
                return $msg;
        }
@@ -3798,7 +3798,7 @@ class Diaspora
                        $comment['thread_parent_guid'] = $thread_parent_item['guid'];
                }
 
-               DI::cache()->set($cachekey, $comment, Cache::QUARTER_HOUR);
+               DI::cache()->set($cachekey, $comment, Duration::QUARTER_HOUR);
 
                return($comment);
        }
index 0eec477a67704655a120f021aefa2a7e91585a75..29adcfcc5308e69785306508e628ac62e7f253cf 100644 (file)
@@ -8,10 +8,9 @@ use DOMDocument;
 use DOMXPath;
 use Friendica\Content\Text\BBCode;
 use Friendica\Content\Text\HTML;
-use Friendica\Core\Cache\Cache;
+use Friendica\Core\Cache\Duration;
 use Friendica\Core\Config;
 use Friendica\Core\L10n;
-use Friendica\Core\Lock;
 use Friendica\Core\Logger;
 use Friendica\Core\PConfig;
 use Friendica\Core\Protocol;
@@ -2246,7 +2245,7 @@ class OStatus
                $feeddata = trim($doc->saveXML());
 
                $msg = ['feed' => $feeddata, 'last_update' => $last_update];
-               DI::cache()->set($cachekey, $msg, Cache::QUARTER_HOUR);
+               DI::cache()->set($cachekey, $msg, Duration::QUARTER_HOUR);
 
                Logger::log('Feed duration: ' . number_format(microtime(true) - $stamp, 3) . ' - ' . $owner_nick . ' - ' . $filter . ' - ' . $previous_created, Logger::DEBUG);
 
index a56738ffb278c944f436b94c6b0537c3c736ec8b..134374a02eff5a26e14cad937a51bccdbeb6fca9 100644 (file)
@@ -4,7 +4,7 @@
  */
 namespace Friendica\Util;
 
-use Friendica\Core\Cache\Cache;
+use Friendica\Core\Cache\Duration;
 use Friendica\Core\Logger;
 use Exception;
 use Friendica\DI;
@@ -46,7 +46,7 @@ class JsonLD
                }
 
                $data = jsonld_default_document_loader($url);
-               DI::cache()->set('documentLoader:' . $url, $data, Cache::DAY);
+               DI::cache()->set('documentLoader:' . $url, $data, Duration::DAY);
                return $data;
        }
 
index 3975fe1f7ae275a7c3083f73fec6ae5d7d7ca3c8..7569396f6b6b5a687b0104109ee578cf2d68c934 100644 (file)
@@ -4,7 +4,7 @@
  */
 namespace Friendica\Worker;
 
-use Friendica\Core\Cache\Cache;
+use Friendica\Core\Cache\Duration;
 use Friendica\Core\Config;
 use Friendica\Core\Logger;
 use Friendica\Core\Protocol;
@@ -81,6 +81,6 @@ class SearchDirectory
                                }
                        }
                }
-               DI::cache()->set('SearchDirectory:' . $search, time(), Cache::DAY);
+               DI::cache()->set('SearchDirectory:' . $search, time(), Duration::DAY);
        }
 }
index b7b9fb91da02fd00bb06729e2ec573667e11de6a..65698f1a100fa4306b6a38917481342791db74e3 100644 (file)
@@ -2,7 +2,7 @@
 
 namespace Friendica\Test\Util;
 
-use Friendica\Core\Cache\Cache;
+use Friendica\Core\Cache\Duration;
 use Friendica\Core\Lock\DatabaseLock;
 
 trait DbaLockMockTrait
@@ -25,7 +25,7 @@ trait DbaLockMockTrait
         *@see DatabaseLock::acquire()
         *
         */
-       public function mockAcquireLock($key, $ttl = Cache::FIVE_MINUTES, $locked = false, $pid = null, $rowExists = true, $time = null, $times = null)
+       public function mockAcquireLock($key, $ttl = Duration::FIVE_MINUTES, $locked = false, $pid = null, $rowExists = true, $time = null, $times = null)
        {
                if ($time === null) {
                        $time = time();