3 namespace Friendica\Factory;
5 use Friendica\Core\Cache;
6 use Friendica\Core\Cache\ICacheDriver;
7 use Friendica\Core\Config;
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');
43 $redis_pw = Config::get('system', 'redis_password');
44 $redis_db = Config::get('system', 'redis_db', 0);
46 return new Cache\RedisCacheDriver($redis_host, $redis_port, $redis_db, $redis_pw);
50 return new Cache\APCuCache();
54 return new Cache\DatabaseCacheDriver();