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