PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / trunk
Matomo Analytics – Powerful, Privacy-First Insights for WordPress vtrunk
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 1 year ago DeviceDetectorFactory.php 2 years ago
DeviceDetectorCache.php
81 lines
1 <?php
2
3 /**
4 * Matomo - free/libre analytics platform
5 *
6 * @link https://matomo.org
7 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
8 */
9 namespace Piwik\DeviceDetector;
10
11 use Piwik\Cache as PiwikCache;
12 /**
13 * Caching class used for DeviceDetector caching
14 *
15 * Combines Piwik\CacheFile with an additional caching in static property
16 *
17 * Static caching speeds up multiple detections in one request, which is the case when sending bulk requests
18 */
19 class DeviceDetectorCache implements \DeviceDetector\Cache\CacheInterface
20 {
21 protected static $staticCache = array();
22 private $cache;
23 private $ttl;
24 public function __construct($ttl = 300)
25 {
26 $this->ttl = (int) $ttl;
27 $this->cache = PiwikCache::getLazyCache();
28 }
29 /**
30 * Function to fetch a cache entry
31 *
32 * @param string $id The cache entry ID
33 * @return array|bool False on error, or array the cache content
34 */
35 public function fetch($id)
36 {
37 if (empty($id)) {
38 return \false;
39 }
40 if (array_key_exists($id, self::$staticCache)) {
41 return self::$staticCache[$id];
42 }
43 if (!$this->cache->contains($id)) {
44 return \false;
45 }
46 return $this->cache->fetch($id);
47 }
48 /**
49 * A function to store content a cache entry.
50 *
51 * @param string $id The cache entry ID
52 * @param array $content The cache content
53 * @throws \Exception
54 * @return bool True if the entry was successfully stored
55 */
56 public function save($id, $content, $ttl = 0) : bool
57 {
58 if (empty($id)) {
59 return \false;
60 }
61 self::$staticCache[$id] = $content;
62 return (bool) $this->cache->save($id, $content, $this->ttl);
63 }
64 public function contains($id) : bool
65 {
66 return !empty(self::$staticCache[$id]) && $this->cache->contains($id);
67 }
68 public function delete($id) : bool
69 {
70 if (empty($id)) {
71 return \false;
72 }
73 unset(self::$staticCache[$id]);
74 return (bool) $this->cache->delete($id);
75 }
76 public function flushAll() : bool
77 {
78 return (bool) $this->cache->flushAll();
79 }
80 }
81