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
20 protected function getCacheKey($key)
22 // We fetch with the hostname as key to avoid problems with other applications
23 return self::getApp()->get_hostname() . ":" . $key;
27 * @param array $keys A list of cached keys
28 * @return array A list of original keys
30 protected function getOriginalKeys($keys)
35 // Keys are prefixed with the node hostname, let's remove it
36 array_walk($keys, function (&$value) {
37 $value = preg_replace('/^' . self::getApp()->get_hostname() . ':/', '', $value);
47 * Filters the keys of an array with a given prefix
48 * Returns the filtered keys as an new array
50 * @param array $array The array, which should get filtered
51 * @param string|null $prefix The prefix (if null, all keys will get returned)
53 * @return array The filtered array with just the keys
55 protected function filterArrayKeysByPrefix($array, $prefix = null)
58 return array_keys($array);
62 foreach (array_keys($array) as $key) {
63 if (strpos($key, $prefix) === 0) {
64 array_push($result, $key);