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 / Settings / Storage / Backend / Cache.php
matomo / app / core / Settings / Storage / Backend Last commit date
BackendInterface.php 6 years ago BaseSettingsTable.php 6 years ago Cache.php 6 years ago Config.php 6 years ago MeasurableSettingsTable.php 6 years ago NullBackend.php 6 years ago PluginSettingsTable.php 6 years ago SitesTable.php 6 years ago
Cache.php
79 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
10 namespace Piwik\Settings\Storage\Backend;
11
12 use Piwik\Settings\Storage;
13 use Piwik\Tracker;
14 use Piwik\Cache as PiwikCache;
15
16 /**
17 * Loads settings from tracker cache instead of database. If not yet present in tracker cache will cache it.
18 *
19 * Can be used as a decorator in combination with any other storage backend.
20 */
21 class Cache implements BackendInterface
22 {
23 /**
24 * @var BackendInterface
25 */
26 private $backend;
27
28 public function __construct(BackendInterface $backend)
29 {
30 $this->backend = $backend;
31 }
32
33 /**
34 * Saves (persists) the current setting values in the database.
35 */
36 public function save($values)
37 {
38 $this->backend->save($values);
39 self::clearCache();
40 }
41
42 public function getStorageId()
43 {
44 return $this->backend->getStorageId();
45 }
46
47 public function delete()
48 {
49 $this->backend->delete();
50 self::clearCache();
51 }
52
53 public function load()
54 {
55 $cacheId = $this->getStorageId();
56 $cache = self::buildCache();
57
58 if ($cache->contains($cacheId)) {
59 return $cache->fetch($cacheId);
60 }
61
62 $settings = $this->backend->load();
63 $cache->save($cacheId, $settings);
64
65 return $settings;
66 }
67
68 public static function clearCache()
69 {
70 Tracker\Cache::deleteTrackerCache();
71 self::buildCache()->flushAll();
72 }
73
74 public static function buildCache()
75 {
76 return PiwikCache::getEagerCache();
77 }
78 }
79