Пример #1
0
        $instanceId = $instanceId ? '/' . $instanceId : '';
    } else {
        $instanceId = '';
    }
    return $root . '/tmp' . $instanceId;
}, 'path.cache' => DI\string('{path.tmp}/cache/tracker/'), 'Piwik\\Cache\\Eager' => function (ContainerInterface $c) {
    $backend = $c->get('Piwik\\Cache\\Backend');
    $cacheId = $c->get('cache.eager.cache_id');
    if (SettingsServer::isTrackerApiRequest()) {
        $eventToPersist = 'Tracker.end';
        $cacheId .= 'tracker';
    } else {
        $eventToPersist = 'Request.dispatch.end';
        $cacheId .= 'ui';
    }
    $cache = new Eager($backend, $cacheId);
    \Piwik\Piwik::addAction($eventToPersist, function () use($cache) {
        $cache->persistCacheIfNeeded(43200);
    });
    return $cache;
}, 'Piwik\\Cache\\Backend' => function (ContainerInterface $c) {
    try {
        $backend = $c->get('ini.Cache.backend');
    } catch (NotFoundException $ex) {
        $backend = 'chained';
        // happens if global.ini.php is not available
    }
    return \Piwik\Cache::buildBackend($backend);
}, 'cache.eager.cache_id' => function () {
    return 'eagercache-' . str_replace(array('.', '-'), '', \Piwik\Version::VERSION) . '-';
}, 'Psr\\Log\\LoggerInterface' => DI\object('Psr\\Log\\NullLogger'), 'Piwik\\Translation\\Loader\\LoaderInterface' => DI\object('Piwik\\Translation\\Loader\\LoaderCache')->constructor(DI\get('Piwik\\Translation\\Loader\\JsonFileLoader')), 'observers.global' => array(), 'Piwik\\EventDispatcher' => DI\object()->constructorParameter('observers', DI\get('observers.global')));
Пример #2
0
 public function findMultipleComponents($directoryWithinPlugin, $expectedSubclass)
 {
     $this->createCacheIfNeeded();
     $cacheId = 'Plugin' . $this->pluginName . $directoryWithinPlugin . $expectedSubclass;
     if ($this->cache->contains($cacheId)) {
         $components = $this->cache->fetch($cacheId);
         if ($this->includeComponents($components)) {
             return $components;
         } else {
             // problem including one cached file, refresh cache
         }
     }
     $components = $this->doFindMultipleComponents($directoryWithinPlugin, $expectedSubclass);
     $this->cache->save($cacheId, $components);
     return $components;
 }
Пример #3
0
 public function clearCache()
 {
     $this->cache->delete($this->cacheKey);
 }