3 namespace Friendica\Factory;
5 use Friendica\Core\Cache\ICacheDriver;
6 use Friendica\Core\Config;
7 use Friendica\Core\Cache;
10 * Class CacheDriverFactory
12 * @package Friendica\Core\Cache
14 * A basic class to generate a CacheDriver
16 class CacheDriverFactory
19 * This method creates a CacheDriver for the given cache driver name
21 * @param string $driver The name of the cache driver
22 * @return ICacheDriver The instance of the CacheDriver
23 * @throws \Exception The exception if something went wrong during the CacheDriver creation
25 public static function create($driver) {
29 $memcache_host = Config::get('system', 'memcache_host');
30 $memcache_port = Config::get('system', 'memcache_port');
32 return new Cache\MemcacheCacheDriver($memcache_host, $memcache_port);
36 $memcached_hosts = Config::get('system', 'memcached_hosts');
38 return new Cache\MemcachedCacheDriver($memcached_hosts);
41 $redis_host = Config::get('system', 'redis_host');
42 $redis_port = Config::get('system', 'redis_port');
44 return new Cache\RedisCacheDriver($redis_host, $redis_port);
47 return new Cache\DatabaseCacheDriver();