PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 1.3.1
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v1.3.1
5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / core / DeviceDetector / DeviceDetectorCache.php
matomo / app / core / DeviceDetector Last commit date
DeviceDetectorCache.php 6 years ago DeviceDetectorFactory.php 5 years ago
DeviceDetectorCache.php
96 lines
1 <?php
2 /**
3 * Piwik - free/libre analytics platform
4 *
5 * @link https://matomo.org
6 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
7 *
8 */
9 namespace Piwik\DeviceDetector;
10
11 use Piwik\Cache as PiwikCache;
12
13 /**
14 * Caching class used for DeviceDetector caching
15 *
16 * Combines Piwik\CacheFile with an additional caching in static property
17 *
18 * Static caching speeds up multiple detections in one request, which is the case when sending bulk requests
19 */
20 class DeviceDetectorCache implements \DeviceDetector\Cache\Cache
21 {
22 protected static $staticCache = array();
23
24 private $cache;
25 private $ttl;
26
27 public function __construct($ttl = 300)
28 {
29 $this->ttl = (int) $ttl;
30 $this->cache = PiwikCache::getLazyCache();
31 }
32
33 /**
34 * Function to fetch a cache entry
35 *
36 * @param string $id The cache entry ID
37 * @return array|bool False on error, or array the cache content
38 */
39 public function fetch($id)
40 {
41 if (empty($id)) {
42 return false;
43 }
44
45 if (array_key_exists($id, self::$staticCache)) {
46 return self::$staticCache[$id];
47 }
48
49 if (!$this->cache->contains($id)) {
50 return false;
51 }
52
53 return $this->cache->fetch($id);
54 }
55
56 /**
57 * A function to store content a cache entry.
58 *
59 * @param string $id The cache entry ID
60 * @param array $content The cache content
61 * @throws \Exception
62 * @return bool True if the entry was successfully stored
63 */
64 public function save($id, $content, $ttl=0)
65 {
66 if (empty($id)) {
67 return false;
68 }
69
70 self::$staticCache[$id] = $content;
71
72 return $this->cache->save($id, $content, $this->ttl);
73 }
74
75 public function contains($id)
76 {
77 return !empty(self::$staticCache[$id]) && $this->cache->contains($id);
78 }
79
80 public function delete($id)
81 {
82 if (empty($id)) {
83 return false;
84 }
85
86 unset(self::$staticCache[$id]);
87
88 return $this->cache->delete($id);
89 }
90
91 public function flushAll()
92 {
93 return $this->cache->flushAll();
94 }
95 }
96