You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
918 B
40 lines
918 B
<?php
|
|
/**
|
|
* @copyright NetMonsters <team@netmonsters.ru>
|
|
* @link http://netmonsters.ru
|
|
* @package Majestic
|
|
* @subpackage Cache
|
|
* @since 2010-03-04
|
|
*/
|
|
|
|
class Cacher
|
|
{
|
|
|
|
/**
|
|
* Initialized cachers
|
|
*
|
|
* @var array
|
|
*/
|
|
static protected $caches = array();
|
|
|
|
/**
|
|
* @param $cacher
|
|
* @param null|string $config
|
|
* @return Cache
|
|
* @throws InitializationException
|
|
*/
|
|
static public function get($cacher, $config = null)
|
|
{
|
|
if (!isset(self::$caches[$cacher])) {
|
|
if (!$config) {
|
|
$config = Config::get($cacher);
|
|
}
|
|
$cache = new $cacher($config);
|
|
if (!$cache instanceof Cache) {
|
|
throw new InitializationException('Cache driver "' . $cacher . '" must extends Cache');
|
|
}
|
|
self::$caches[$cacher] = $cache;
|
|
}
|
|
return self::$caches[$cacher];
|
|
}
|
|
}
|