]> git.mxchange.org Git - friendica.git/blob - src/Factory/CacheDriverFactory.php
Adding ConfigFileSaver and tests
[friendica.git] / src / Factory / CacheDriverFactory.php
1 <?php
2
3 namespace Friendica\Factory;
4
5 use Friendica\Core\Cache\ICacheDriver;
6 use Friendica\Core\Config;
7 use Friendica\Core\Cache;
8
9 /**
10  * Class CacheDriverFactory
11  *
12  * @package Friendica\Core\Cache
13  *
14  * A basic class to generate a CacheDriver
15  */
16 class CacheDriverFactory
17 {
18         /**
19          * This method creates a CacheDriver for the given cache driver name
20          *
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
24          */
25         public static function create($driver) {
26
27                 switch ($driver) {
28                         case 'memcache':
29                                 $memcache_host = Config::get('system', 'memcache_host');
30                                 $memcache_port = Config::get('system', 'memcache_port');
31
32                                 return new Cache\MemcacheCacheDriver($memcache_host, $memcache_port);
33                                 break;
34
35                         case 'memcached':
36                                 $memcached_hosts = Config::get('system', 'memcached_hosts');
37
38                                 return new Cache\MemcachedCacheDriver($memcached_hosts);
39                                 break;
40                         case 'redis':
41                                 $redis_host = Config::get('system', 'redis_host');
42                                 $redis_port = Config::get('system', 'redis_port');
43
44                                 return new Cache\RedisCacheDriver($redis_host, $redis_port);
45                                 break;
46                         default:
47                                 return new Cache\DatabaseCacheDriver();
48                 }
49         }
50 }