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