Registry.class.php
2.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?php
/**
* User: graymur
* Date: 06.11.13
* Time: 16:45
*/
namespace Cpeople\Classes;
class Registry
{
protected $values = array();
protected static $instances;
private function __construct() {}
static function instance()
{
$className = get_called_class();
if (!isset(self::$instances[$className]))
{
self::$instances[$className] = new $className;
}
return self::$instances[$className];
}
protected static function who()
{
return __CLASS__;
}
protected function get($key)
{
return isset($this->values[$key]) ? $this->values[$key] : null;
}
protected function set($key, $val)
{
$this->values[$key] = $val;
}
/**
* @param $path
* @return Cache\Manager
*/
static function getFilesCacheManager($path)
{
$engine = new Cache\EngineFiles($path);
$manager = Cache\Manager::instance();
$manager->setEngine($engine);
return $manager;
}
/**
* @param $path
* @return Cache\Manager
*/
static function getAPCCacheManager($path)
{
$engine = new Cache\EngineAPC($path);
$manager = Cache\Manager::instance();
$manager->setEngine($engine);
return $manager;
}
/**
* @param $path
* @return Cache\Manager
*/
static function getMemcacheManager($options = array())
{
$engine = new Cache\EngineMemcached($options);
$engine->setTTL(COMPONENTS_CACHE_TTL);
$manager = Cache\Manager::instance();
$manager->setEngine($engine);
return $manager;
}
static function bitrixCacheEnabled()
{
return true;
$component = \COption::GetOptionString('main', 'component_cache_on', 'N');
$managed = \COption::GetOptionString('main', 'component_managed_cache_on', 'N');
return $component == 'Y'/* && $managed == 'Y'*/;
}
}