3 namespace Friendica\Core\Cache;
4 use Friendica\BaseObject;
8 * Abstract class for common used functions
10 * Class AbstractCacheDriver
12 * @package Friendica\Core\Cache
14 abstract class AbstractCacheDriver extends BaseObject
17 * @param string $key The original key
18 * @return string The cache key used for the cache
21 protected function getCacheKey($key)
23 // We fetch with the hostname as key to avoid problems with other applications
24 return self::getApp()->getHostName() . ":" . $key;
28 * @param array $keys A list of cached keys
29 * @return array A list of original keys
31 protected function getOriginalKeys($keys)
36 // Keys are prefixed with the node hostname, let's remove it
37 array_walk($keys, function (&$value) {
38 $value = preg_replace('/^' . self::getApp()->getHostName() . ':/', '', $value);
48 * Filters the keys of an array with a given prefix
49 * Returns the filtered keys as an new array
51 * @param array $array The array, which should get filtered
52 * @param string|null $prefix The prefix (if null, all keys will get returned)
54 * @return array The filtered array with just the keys
56 protected function filterArrayKeysByPrefix($array, $prefix = null)
59 return array_keys($array);
63 foreach (array_keys($array) as $key) {
64 if (strpos($key, $prefix) === 0) {
65 array_push($result, $key);