Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Steur <thomas.steur@googlemail.com>2014-10-16 03:32:55 +0400
committerThomas Steur <thomas.steur@googlemail.com>2014-10-16 03:32:55 +0400
commita8ee9e249e0e104fc39bc0239fab51ad5e7c225a (patch)
treeec69badb1bca5479c704b1cd6ca16e9116b13998 /plugins/LanguagesManager/API.php
parent3ea1eded72582dc745db0dcdf121c1e67a8e6c25 (diff)
this makes each call to CoreHome and others 200ms faster on my instance (10%)
Diffstat (limited to 'plugins/LanguagesManager/API.php')
-rw-r--r--plugins/LanguagesManager/API.php30
1 files changed, 20 insertions, 10 deletions
diff --git a/plugins/LanguagesManager/API.php b/plugins/LanguagesManager/API.php
index e715770279..eaa5263ff6 100644
--- a/plugins/LanguagesManager/API.php
+++ b/plugins/LanguagesManager/API.php
@@ -9,6 +9,7 @@
*/
namespace Piwik\Plugins\LanguagesManager;
+use Piwik\Cache\PersistentCache;
use Piwik\Db;
use Piwik\Filesystem;
use Piwik\Piwik;
@@ -271,17 +272,26 @@ class API extends \Piwik\Plugin\API
return;
}
- $filenames = $this->getAvailableLanguages();
- $languagesInfo = array();
- foreach ($filenames as $filename) {
- $data = file_get_contents(PIWIK_INCLUDE_PATH . "/lang/$filename.json");
- $translations = json_decode($data, true);
- $languagesInfo[] = array(
- 'code' => $filename,
- 'name' => $translations['General']['OriginalLanguageName'],
- 'english_name' => $translations['General']['EnglishLanguageName']
- );
+ $cache = new PersistentCache('availableLanguages');
+
+ if ($cache->has()) {
+ $languagesInfo = $cache->get();
+ } else {
+ $filenames = $this->getAvailableLanguages();
+ $languagesInfo = array();
+ foreach ($filenames as $filename) {
+ $data = file_get_contents(PIWIK_INCLUDE_PATH . "/lang/$filename.json");
+ $translations = json_decode($data, true);
+ $languagesInfo[] = array(
+ 'code' => $filename,
+ 'name' => $translations['General']['OriginalLanguageName'],
+ 'english_name' => $translations['General']['EnglishLanguageName']
+ );
+ }
+
+ $cache->set($languagesInfo);
}
+
$this->availableLanguageNames = $languagesInfo;
}
}