From d5f62dbdeb9f6502d40c742d021fa2400381f5ae Mon Sep 17 00:00:00 2001 From: Thomas Steur Date: Tue, 26 Aug 2014 11:21:11 +0200 Subject: refs #6065 remove tracker plugins from config and cache them instead in a file. Wondering which test will fail... --- config/global.ini.php | 7 ---- core/Plugin/Manager.php | 63 ++++++++++++++---------------------- core/Updates/2.6.0-b1.php | 30 +++++++++++++++++ tests/LocalTracker.php | 2 -- tests/PHPUnit/TestingEnvironment.php | 6 ---- 5 files changed, 54 insertions(+), 54 deletions(-) create mode 100644 core/Updates/2.6.0-b1.php diff --git a/config/global.ini.php b/config/global.ini.php index 564f2e0900..008d99cd3b 100644 --- a/config/global.ini.php +++ b/config/global.ini.php @@ -676,13 +676,6 @@ PluginsInstalled[] = UsersManager PluginsInstalled[] = SitesManager PluginsInstalled[] = Installation -[Plugins_Tracker] -Plugins_Tracker[] = Provider -Plugins_Tracker[] = Goals -Plugins_Tracker[] = PrivacyManager -Plugins_Tracker[] = UserCountry -Plugins_Tracker[] = Login - [APISettings] ; Any key/value pair can be added in this section, they will be available via the REST call ; index.php?module=API&method=API.getSettings diff --git a/core/Plugin/Manager.php b/core/Plugin/Manager.php index f7a03678e5..a777ef03e1 100644 --- a/core/Plugin/Manager.php +++ b/core/Plugin/Manager.php @@ -9,6 +9,7 @@ namespace Piwik\Plugin; +use Piwik\Cache\PersistentCache; use Piwik\Cache\PluginAwareStaticCache; use Piwik\Cache\StaticCache; use Piwik\CacheFile; @@ -116,8 +117,30 @@ class Manager extends Singleton */ public function loadTrackerPlugins() { + $cache = new PersistentCache('PluginsTracker'); + + if ($cache->has()) { + $pluginsTracker = $cache->get(); + } else { + + $this->unloadPlugins(); + $this->loadActivatedPlugins(); + + $pluginsTracker = array(); + + foreach ($this->loadedPlugins as $pluginName => $plugin) { + if ($this->isTrackerPlugin($plugin)) { + $pluginsTracker[] = $pluginName; + } + } + + if (!empty($pluginsTracker)) { + $cache->set($pluginsTracker); + } + } + $this->unloadPlugins(); - $pluginsTracker = PiwikConfig::getInstance()->Plugins_Tracker['Plugins_Tracker']; + if (empty($pluginsTracker)) { return array(); } @@ -163,18 +186,6 @@ class Manager extends Singleton PiwikConfig::getInstance()->Plugins = $section; } - /** - * Update Plugins_Tracker config - * - * @param array $plugins Plugins - */ - private function updatePluginsTrackerConfig($plugins) - { - $section = PiwikConfig::getInstance()->Plugins_Tracker; - $section['Plugins_Tracker'] = $plugins; - PiwikConfig::getInstance()->Plugins_Tracker = $section; - } - /** * Update PluginsInstalled config * @@ -1098,19 +1109,6 @@ class Manager extends Singleton $saveConfig = true; } - if ($this->isTrackerPlugin($plugin)) { - $pluginsTracker = PiwikConfig::getInstance()->Plugins_Tracker['Plugins_Tracker']; - if (is_null($pluginsTracker)) { - $pluginsTracker = array(); - } - if (!in_array($pluginName, $pluginsTracker)) { - Log::verbose("Adding this plugin to the list of Tracker plugins: $pluginName"); - $pluginsTracker[] = $pluginName; - $this->updatePluginsTrackerConfig($pluginsTracker); - $saveConfig = true; - } - } - if ($saveConfig) { PiwikConfig::getInstance()->forceSave(); } @@ -1181,18 +1179,6 @@ class Manager extends Singleton $this->updatePluginsConfig($pluginsEnabled); } - private function removePluginFromTrackerConfig($pluginName) - { - $pluginsTracker = PiwikConfig::getInstance()->Plugins_Tracker['Plugins_Tracker']; - if (!is_null($pluginsTracker)) { - $key = array_search($pluginName, $pluginsTracker); - if ($key !== false) { - unset($pluginsTracker[$key]); - $this->updatePluginsTrackerConfig($pluginsTracker); - } - } - } - /** * @param string $pathToTranslationFile * @throws \Exception @@ -1273,7 +1259,6 @@ class Manager extends Singleton private function removePluginFromConfig($pluginName) { $this->removePluginFromPluginsConfig($pluginName); - $this->removePluginFromTrackerConfig($pluginName); PiwikConfig::getInstance()->forceSave(); } diff --git a/core/Updates/2.6.0-b1.php b/core/Updates/2.6.0-b1.php new file mode 100644 index 0000000000..5819ca95f9 --- /dev/null +++ b/core/Updates/2.6.0-b1.php @@ -0,0 +1,30 @@ +Plugins_Tracker = array(); + $config->forceSave(); + } +} diff --git a/tests/LocalTracker.php b/tests/LocalTracker.php index 366996b465..46243ef340 100755 --- a/tests/LocalTracker.php +++ b/tests/LocalTracker.php @@ -51,7 +51,6 @@ class Piwik_LocalTracker extends PiwikTracker // save some values $plugins = Config::getInstance()->Plugins['Plugins']; - $pluginsTracker = Config::getInstance()->Plugins_Tracker['Plugins_Tracker']; $oldTrackerConfig = Config::getInstance()->Tracker; \Piwik\Plugin\Manager::getInstance()->unloadPlugins(); @@ -85,7 +84,6 @@ class Piwik_LocalTracker extends PiwikTracker ob_end_clean(); // restore vars - Config::getInstance()->Plugins_Tracker['Plugins_Tracker'] = $pluginsTracker; Config::getInstance()->Tracker = $oldTrackerConfig; $_SERVER['HTTP_ACCEPT_LANGUAGE'] = $oldLang; $_SERVER['HTTP_USER_AGENT'] = $oldUserAgent; diff --git a/tests/PHPUnit/TestingEnvironment.php b/tests/PHPUnit/TestingEnvironment.php index c61ca8825b..be22cd2b9e 100644 --- a/tests/PHPUnit/TestingEnvironment.php +++ b/tests/PHPUnit/TestingEnvironment.php @@ -166,12 +166,6 @@ class Piwik_TestingEnvironment $local['Plugins'] = array('Plugins' => $pluginsToLoad); - $trackerPluginsToLoad = array_filter($local['Plugins']['Plugins'], function ($plugin) use ($manager) { - return $manager->isTrackerPlugin($manager->loadPlugin($plugin)); - }); - - $local['Plugins_Tracker'] = array('Plugins_Tracker' => $trackerPluginsToLoad); - $local['log']['log_writers'] = array('file'); $manager->unloadPlugins(); -- cgit v1.2.3