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
|
<?php N2Loader::importAll('libraries.cache.storage');
class N2Cache {
protected $group = ''; protected $isAccessible = false;
/** @var N2CacheStorage */ public $storage;
protected $_storageEngine = 'filesystem';
/** * @param string $engine * * @return N2CacheStorage */ public static function getStorage($engine = "filesystem") { static $storage = null; if ($storage === null) { $storage = array( 'filesystem' => new N2CacheStorageFilesystem(), 'database' => new N2CacheStorageDatabase() ); }
return $storage[$engine]; }
public static function clearAll() { self::getStorage('filesystem') ->clearAll(); self::getStorage('filesystem') ->clearAll('web'); }
public static function clearGroup($group) { self::getStorage('filesystem') ->clear($group); self::getStorage('filesystem') ->clear($group, 'web'); self::getStorage('database') ->clear($group); self::getStorage('database') ->clear($group, 'web'); }
public function __construct($group, $isAccessible = false) { $this->group = $group; $this->isAccessible = $isAccessible; $this->storage = self::getStorage($this->_storageEngine); }
protected function clearCurrentGroup() { $this->storage->clear($this->group, $this->getScope()); }
protected function getScope() { if ($this->isAccessible) { return 'web'; }
return 'notweb'; }
protected function exists($key) { return $this->storage->exists($this->group, $key, $this->getScope()); }
protected function get($key) { return $this->storage->get($this->group, $key, $this->getScope()); }
protected function set($key, $value) { $this->storage->set($this->group, $key, $value, $this->getScope()); }
protected function getPath($key) { return $this->storage->getPath($this->group, $key, $this->getScope()); }
protected function remove($key) { return $this->storage->remove($this->group, $key, $this->getScope()); } }
|