Piwik\Plugin\Manager::loadTrackerPlugins PHP Метод

loadTrackerPlugins() публичный Метод

public loadTrackerPlugins ( ) : array
Результат array names of plugins that have been loaded
    public function loadTrackerPlugins()
    {
        $cacheId = 'PluginsTracker';
        $cache = Cache::getEagerCache();
        if ($cache->contains($cacheId)) {
            $pluginsTracker = $cache->fetch($cacheId);
        } else {
            $this->unloadPlugins();
            $this->loadActivatedPlugins();
            $pluginsTracker = array();
            foreach ($this->loadedPlugins as $pluginName => $plugin) {
                if ($this->isTrackerPlugin($plugin)) {
                    $pluginsTracker[] = $pluginName;
                }
            }
            if (!empty($pluginsTracker)) {
                $cache->save($cacheId, $pluginsTracker);
            }
        }
        if (empty($pluginsTracker)) {
            $this->unloadPlugins();
            return array();
        }
        $pluginsTracker = array_diff($pluginsTracker, $this->getTrackerPluginsNotToLoad());
        $this->doNotLoadAlwaysActivatedPlugins();
        $this->loadPlugins($pluginsTracker);
        // we could simply unload all plugins first before loading plugins but this way it is much faster
        // since we won't have to create each plugin again and we won't have to parse each plugin metadata file
        // again etc
        $this->makeSureOnlyActivatedPluginsAreLoaded();
        return $pluginsTracker;
    }

Usage Example

Пример #1
0
 public function test_loadTrackerPlugins_shouldUnloadAllPlugins_IfThereAreNoneToLoad()
 {
     $pluginsToLoad = array();
     $this->getCacheForTrackerPlugins()->save($this->trackerCacheId, $pluginsToLoad);
     $pluginsToLoad = $this->manager->loadTrackerPlugins();
     $this->assertEquals(array(), $pluginsToLoad);
     $this->assertEquals(array(), $this->manager->getLoadedPlugins());
 }
Manager