diff options
author | Thomas Steur <thomas.steur@googlemail.com> | 2014-10-16 03:32:55 +0400 |
---|---|---|
committer | Thomas Steur <thomas.steur@googlemail.com> | 2014-10-16 03:32:55 +0400 |
commit | a8ee9e249e0e104fc39bc0239fab51ad5e7c225a (patch) | |
tree | ec69badb1bca5479c704b1cd6ca16e9116b13998 /plugins/LanguagesManager/API.php | |
parent | 3ea1eded72582dc745db0dcdf121c1e67a8e6c25 (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.php | 30 |
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; } } |