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 / Translation / Loader / LoaderCache.php
matomo / app / core / Translation / Loader Last commit date
DevelopmentLoader.php 6 years ago JsonFileLoader.php 6 years ago LoaderCache.php 6 years ago LoaderInterface.php 6 years ago
LoaderCache.php
66 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 namespace Piwik\Translation\Loader;
10
11 use Piwik\Cache;
12
13 /**
14 * Caches the translations loaded by another loader.
15 */
16 class LoaderCache implements LoaderInterface
17 {
18 /**
19 * @var LoaderInterface
20 */
21 private $loader;
22
23 /**
24 * @var Cache\Lazy
25 */
26 private $cache;
27
28 public function __construct(LoaderInterface $loader, Cache\Lazy $cache)
29 {
30 $this->loader = $loader;
31 $this->cache = $cache;
32 }
33
34 /**
35 * {@inheritdoc}
36 */
37 public function load($language, array $directories)
38 {
39 if (empty($language)) {
40 return array();
41 }
42
43 $cacheKey = $this->getCacheKey($language, $directories);
44
45 $translations = $this->cache->fetch($cacheKey);
46
47 if (empty($translations) || !is_array($translations)) {
48 $translations = $this->loader->load($language, $directories);
49
50 $this->cache->save($cacheKey, $translations, 43200); // ttl=12hours
51 }
52
53 return $translations;
54 }
55
56 private function getCacheKey($language, array $directories)
57 {
58 $cacheKey = 'Translations-' . $language . '-';
59
60 // in case loaded plugins change (ie Tests vs Tracker vs UI etc)
61 $cacheKey .= sha1(implode('', $directories));
62
63 return $cacheKey;
64 }
65 }
66