- switch(Config::get('system', 'cache_driver', 'database')) {
- case 'memcache':
- $memcache_host = Config::get('system', 'memcache_host', '127.0.0.1');
- $memcache_port = Config::get('system', 'memcache_port', 11211);
-
- self::$driver = new Cache\MemcacheCacheDriver($memcache_host, $memcache_port);
- break;
- case 'memcached':
- $memcached_host = Config::get('system', 'memcached_host', '127.0.0.1');
- $memcached_port = Config::get('system', 'memcached_port', 11211);
-
- self::$driver = new Cache\MemcachedCacheDriver($memcached_host, $memcached_port);
- break;
- default:
- self::$driver = new Cache\DatabaseCacheDriver();
- }
- }
-
- /**
- * @brief Return the duration for a given cache level
- *
- * @param integer $level Cache level
- *
- * @return integer The cache duration in seconds
- */
- public static function duration($level)
- {
- switch ($level) {
- case self::MONTH:
- $seconds = 2592000;
- break;
- case self::WEEK:
- $seconds = 604800;
- break;
- case self::DAY:
- $seconds = 86400;
- break;
- case self::HOUR:
- $seconds = 3600;
- break;
- case self::HALF_HOUR:
- $seconds = 1800;
- break;
- case self::QUARTER_HOUR:
- $seconds = 900;
- break;
- case self::FIVE_MINUTES:
- $seconds = 300;
- break;
- case self::MINUTE:
- default:
- $seconds = 60;
- break;
- }
- return $seconds;
+ self::$driver_name = Config::get('system', 'cache_driver', 'database');
+ self::$driver = CacheDriverFactory::create(self::$driver_name);
+ self::$driver_class = get_class(self::$driver);