PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.8.4
Independent Analytics – WordPress Analytics Plugin v2.8.4
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 / IAWP / Utils / Device_Cache.php
independent-analytics / IAWP / Utils Last commit date
BladeOne.php 2 years ago CSV.php 2 years ago Calculations.php 2 years ago Currency.php 1 year ago Device.php 2 years ago Device_Cache.php 2 years ago Dir.php 2 years ago Number_Formatter.php 2 years ago Request.php 1 year ago Salt.php 1 year ago Security.php 2 years ago Server.php 2 years ago Singleton.php 2 years ago String_Util.php 2 years ago URL.php 2 years ago WP_Async_Request.php 2 years ago WordPress_Site_Date_Format_Pattern.php 2 years ago
Device_Cache.php
98 lines
1 <?php
2
3 namespace IAWP\Utils;
4
5 use IAWPSCOPED\DeviceDetector\Cache\CacheInterface;
6 /** @internal */
7 class Device_Cache implements CacheInterface
8 {
9 private $cache = [];
10 private $dirty = \false;
11 /**
12 * @param string $id
13 * @return mixed
14 */
15 public function fetch(string $id)
16 {
17 return $this->cache[$id] ?? null;
18 }
19 /**
20 * @param string $id
21 * @return bool
22 */
23 public function contains(string $id) : bool
24 {
25 return \array_key_exists($id, $this->cache);
26 }
27 /**
28 * @param string $id
29 * @param $data
30 * @param int $lifeTime
31 * @return bool
32 */
33 public function save(string $id, $data, int $lifeTime = 0) : bool
34 {
35 $this->dirty = \true;
36 $this->cache[$id] = $data;
37 return \true;
38 }
39 /**
40 * @param string $id
41 * @return bool
42 */
43 public function delete(string $id) : bool
44 {
45 $this->dirty = \true;
46 unset($this->cache[$id]);
47 return \true;
48 }
49 /**
50 * @return bool
51 */
52 public function flushAll() : bool
53 {
54 $this->dirty = \true;
55 $this->cache = [];
56 return \true;
57 }
58 public function load_from_file()
59 {
60 if (!\file_exists($this->file())) {
61 $this->cache = [];
62 return;
63 }
64 $json = \file_get_contents($this->file());
65 if ($json === \false) {
66 $this->cache = [];
67 return;
68 }
69 $data = \json_decode($json, \true);
70 if ($data === null) {
71 $this->cache = [];
72 return;
73 }
74 $this->cache = $data;
75 }
76 public function save_to_file()
77 {
78 if ($this->dirty === \false) {
79 return;
80 }
81 $this->dirty = \false;
82 $contents = \json_encode($this->cache);
83 if ($contents === \false) {
84 \unlink($this->file());
85 return;
86 }
87 $response = \file_put_contents($this->file(), $contents);
88 if ($response === \false) {
89 \wp_mkdir_p(\IAWPSCOPED\iawp_temp_path_to(''));
90 \file_put_contents($this->file(), $contents);
91 }
92 }
93 private function file() : string
94 {
95 return \IAWPSCOPED\iawp_temp_path_to('device-detector.json');
96 }
97 }
98