From: Hypolite Petovan Date: Sun, 26 Jun 2022 09:56:13 +0000 (-0400) Subject: Convert potential spaces in Memcache(d) key names X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=91f5a7cc6bb546cb019eacc6348b0b3863851a64;p=friendica.git Convert potential spaces in Memcache(d) key names - Address https://github.com/friendica/friendica/issues/11630#issuecomment-1166475036 - Add test for space in cache keys --- diff --git a/src/Core/Cache/Type/MemcacheCache.php b/src/Core/Cache/Type/MemcacheCache.php index 441c64c3a0..225c338911 100644 --- a/src/Core/Cache/Type/MemcacheCache.php +++ b/src/Core/Cache/Type/MemcacheCache.php @@ -68,6 +68,17 @@ class MemcacheCache extends AbstractCache implements ICanCacheInMemory } } + /** + * Memcache doesn't allow spaces in keys + * + * @param string $key + * @return string + */ + protected function getCacheKey(string $key): string + { + return str_replace(' ', '_', parent::getCacheKey($key)); + } + /** * (@inheritdoc) */ diff --git a/src/Core/Cache/Type/MemcachedCache.php b/src/Core/Cache/Type/MemcachedCache.php index d86906de76..2d8b4e1c2f 100644 --- a/src/Core/Cache/Type/MemcachedCache.php +++ b/src/Core/Cache/Type/MemcachedCache.php @@ -93,6 +93,17 @@ class MemcachedCache extends AbstractCache implements ICanCacheInMemory } } + /** + * Memcached doesn't allow spaces in keys + * + * @param string $key + * @return string + */ + protected function getCacheKey(string $key): string + { + return str_replace(' ', '_', parent::getCacheKey($key)); + } + /** * (@inheritdoc) */ diff --git a/src/Protocol/OStatus.php b/src/Protocol/OStatus.php index 90e52d673d..36dbb06c84 100644 --- a/src/Protocol/OStatus.php +++ b/src/Protocol/OStatus.php @@ -2017,7 +2017,7 @@ class OStatus * cache or it is empty * * @param string $owner_nick Nickname of the feed owner - * @param string $last_update Date of the last update + * @param string $last_update Date of the last update (in "Y-m-d H:i:s" format) * @param integer $max_items Number of maximum items to fetch * @param string $filter Feed items filter (activity, posts or comments) * @param boolean $nocache Wether to bypass caching diff --git a/tests/src/Core/Cache/CacheTest.php b/tests/src/Core/Cache/CacheTest.php index 88154c9d22..c249aefbfa 100644 --- a/tests/src/Core/Cache/CacheTest.php +++ b/tests/src/Core/Cache/CacheTest.php @@ -237,4 +237,13 @@ abstract class CacheTest extends MockedTest self::assertNotContains('value1', $list); self::assertNotContains('value2', $list); } + + /** + * @small + */ + public function testSpaceInKey() + { + self::assertTrue($this->instance->set('key space', 'value')); + self::assertEquals('value', $this->instance->get('key space')); + } }