]> git.mxchange.org Git - friendica.git/blob - src/Core/Cache/CacheDriverFactory.php
Deleting parameter-types of methods (lack of support in PHP 5.6)
[friendica.git] / src / Core / Cache / CacheDriverFactory.php
1 <?php
2
3 namespace Friendica\Core\Cache;
4
5 use Friendica\Core\Config;
6
7 /**
8  * Class CacheDriverFactory
9  *
10  * @package Friendica\Core\Cache
11  *
12  * @brief A basic class to generate a CacheDriver
13  */
14 class CacheDriverFactory
15 {
16         /**
17          * @brief This method creates a CacheDriver for the given cache driver name
18          *
19          * @param string $driver The name of the cache driver
20          * @return ICacheDriver  The instance of the CacheDriver
21          * @throws \Exception    The exception if something went wrong during the CacheDriver creation
22          */
23         public static function create($driver) {
24
25                 switch ($driver) {
26                         case 'memcache':
27                                 $memcache_host = Config::get('system', 'memcache_host', '127.0.0.1');
28                                 $memcache_port = Config::get('system', 'memcache_port', 11211);
29
30                                 return new MemcacheCacheDriver($memcache_host, $memcache_port);
31                                 break;
32
33                         case 'memcached':
34                                 $memcached_hosts = Config::get('system', 'memcached_hosts', [['127.0.0.1', 11211]]);
35
36                                 return new MemcachedCacheDriver($memcached_hosts);
37                                 break;
38                         case 'redis':
39                                 $redis_host = Config::get('system', 'redis_host', '127.0.0.1');
40                                 $redis_port = Config::get('system', 'redis_port', 6379);
41
42                                 return new RedisCacheDriver($redis_host, $redis_port);
43                                 break;
44                         default:
45                                 return new DatabaseCacheDriver();
46                 }
47         }
48 }