PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.2.0
Independent Analytics – WordPress Analytics Plugin v2.2.0
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / vendor / doctrine / cache / lib / Doctrine / Common / Cache / ChainCache.php
independent-analytics / vendor / doctrine / cache / lib / Doctrine / Common / Cache Last commit date
Psr6 2 years ago ApcCache.php 2 years ago ApcuCache.php 2 years ago ArrayCache.php 2 years ago Cache.php 2 years ago CacheProvider.php 2 years ago ChainCache.php 2 years ago ClearableCache.php 2 years ago CouchbaseBucketCache.php 2 years ago CouchbaseCache.php 2 years ago ExtMongoDBCache.php 2 years ago FileCache.php 2 years ago FilesystemCache.php 2 years ago FlushableCache.php 2 years ago InvalidCacheId.php 2 years ago LegacyMongoDBCache.php 2 years ago MemcacheCache.php 2 years ago MemcachedCache.php 2 years ago MongoDBCache.php 2 years ago MultiDeleteCache.php 2 years ago MultiGetCache.php 2 years ago MultiOperationCache.php 2 years ago MultiPutCache.php 2 years ago PhpFileCache.php 2 years ago PredisCache.php 2 years ago RedisCache.php 2 years ago SQLite3Cache.php 2 years ago Version.php 2 years ago VoidCache.php 2 years ago WinCacheCache.php 2 years ago XcacheCache.php 2 years ago ZendDataCache.php 2 years ago
ChainCache.php
161 lines
1 <?php
2
3 namespace IAWP_SCOPED\Doctrine\Common\Cache;
4
5 use Traversable;
6 use function array_values;
7 use function count;
8 use function iterator_to_array;
9 /**
10 * Cache provider that allows to easily chain multiple cache providers
11 *
12 * @deprecated Deprecated without replacement in doctrine/cache 1.11. This class will be dropped in 2.0
13 * @internal
14 */
15 class ChainCache extends CacheProvider
16 {
17 /** @var CacheProvider[] */
18 private $cacheProviders = [];
19 /** @var int */
20 private $defaultLifeTimeForDownstreamCacheProviders = 0;
21 /**
22 * @param CacheProvider[] $cacheProviders
23 */
24 public function __construct($cacheProviders = [])
25 {
26 $this->cacheProviders = $cacheProviders instanceof Traversable ? iterator_to_array($cacheProviders, \false) : array_values($cacheProviders);
27 }
28 public function setDefaultLifeTimeForDownstreamCacheProviders(int $defaultLifeTimeForDownstreamCacheProviders) : void
29 {
30 $this->defaultLifeTimeForDownstreamCacheProviders = $defaultLifeTimeForDownstreamCacheProviders;
31 }
32 /**
33 * {@inheritDoc}
34 */
35 public function setNamespace($namespace)
36 {
37 parent::setNamespace($namespace);
38 foreach ($this->cacheProviders as $cacheProvider) {
39 $cacheProvider->setNamespace($namespace);
40 }
41 }
42 /**
43 * {@inheritDoc}
44 */
45 protected function doFetch($id)
46 {
47 foreach ($this->cacheProviders as $key => $cacheProvider) {
48 if ($cacheProvider->doContains($id)) {
49 $value = $cacheProvider->doFetch($id);
50 // We populate all the previous cache layers (that are assumed to be faster)
51 for ($subKey = $key - 1; $subKey >= 0; $subKey--) {
52 $this->cacheProviders[$subKey]->doSave($id, $value, $this->defaultLifeTimeForDownstreamCacheProviders);
53 }
54 return $value;
55 }
56 }
57 return \false;
58 }
59 /**
60 * {@inheritdoc}
61 */
62 protected function doFetchMultiple(array $keys)
63 {
64 /** @var CacheProvider[] $traversedProviders */
65 $traversedProviders = [];
66 $keysCount = count($keys);
67 $fetchedValues = [];
68 foreach ($this->cacheProviders as $key => $cacheProvider) {
69 $fetchedValues = $cacheProvider->doFetchMultiple($keys);
70 // We populate all the previous cache layers (that are assumed to be faster)
71 if (count($fetchedValues) === $keysCount) {
72 foreach ($traversedProviders as $previousCacheProvider) {
73 $previousCacheProvider->doSaveMultiple($fetchedValues, $this->defaultLifeTimeForDownstreamCacheProviders);
74 }
75 return $fetchedValues;
76 }
77 $traversedProviders[] = $cacheProvider;
78 }
79 return $fetchedValues;
80 }
81 /**
82 * {@inheritDoc}
83 */
84 protected function doContains($id)
85 {
86 foreach ($this->cacheProviders as $cacheProvider) {
87 if ($cacheProvider->doContains($id)) {
88 return \true;
89 }
90 }
91 return \false;
92 }
93 /**
94 * {@inheritDoc}
95 */
96 protected function doSave($id, $data, $lifeTime = 0)
97 {
98 $stored = \true;
99 foreach ($this->cacheProviders as $cacheProvider) {
100 $stored = $cacheProvider->doSave($id, $data, $lifeTime) && $stored;
101 }
102 return $stored;
103 }
104 /**
105 * {@inheritdoc}
106 */
107 protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)
108 {
109 $stored = \true;
110 foreach ($this->cacheProviders as $cacheProvider) {
111 $stored = $cacheProvider->doSaveMultiple($keysAndValues, $lifetime) && $stored;
112 }
113 return $stored;
114 }
115 /**
116 * {@inheritDoc}
117 */
118 protected function doDelete($id)
119 {
120 $deleted = \true;
121 foreach ($this->cacheProviders as $cacheProvider) {
122 $deleted = $cacheProvider->doDelete($id) && $deleted;
123 }
124 return $deleted;
125 }
126 /**
127 * {@inheritdoc}
128 */
129 protected function doDeleteMultiple(array $keys)
130 {
131 $deleted = \true;
132 foreach ($this->cacheProviders as $cacheProvider) {
133 $deleted = $cacheProvider->doDeleteMultiple($keys) && $deleted;
134 }
135 return $deleted;
136 }
137 /**
138 * {@inheritDoc}
139 */
140 protected function doFlush()
141 {
142 $flushed = \true;
143 foreach ($this->cacheProviders as $cacheProvider) {
144 $flushed = $cacheProvider->doFlush() && $flushed;
145 }
146 return $flushed;
147 }
148 /**
149 * {@inheritDoc}
150 */
151 protected function doGetStats()
152 {
153 // We return all the stats from all adapters
154 $stats = [];
155 foreach ($this->cacheProviders as $cacheProvider) {
156 $stats[] = $cacheProvider->doGetStats();
157 }
158 return $stats;
159 }
160 }
161