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