Skip to content
Extraits de code Groupes Projets
Valider 2afe33ff rédigé par Thomas Steur's avatar Thomas Steur
Parcourir les fichiers

this is a better solution to the previous committed fix. This solution works...

this is a better solution to the previous committed fix. This solution works in all cases (even when not running tests) and makes it useable for other CacheFile classes as well. In addition it keeps the dependencies in the PersistenceCache class
parent 0f7e25cb
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -96,7 +96,7 @@ class PersistentCache
public static function _reset()
{
self::$content = null;
self::$content = array();
}
/**
......@@ -106,6 +106,9 @@ class PersistentCache
{
if (is_null(self::$storage)) {
self::$storage = new CacheFile('tracker', 43200);
self::$storage->addOnDeleteCallback(function () {
PersistentCache::_reset();
});
}
return self::$storage;
......
......@@ -36,6 +36,11 @@ class CacheFile
*/
const MINIMUM_TTL = 60;
/**
* @var \Callable[]
*/
private static $onDeleteCallback = array();
/**
* @param string $directory directory to use
* @param int $timeToLiveInSeconds TTL
......@@ -182,6 +187,11 @@ class CacheFile
return false;
}
public function addOnDeleteCallback($onDeleteCallback)
{
self::$onDeleteCallback[] = $onDeleteCallback;
}
/**
* A function to delete all cache entries in the directory
*/
......@@ -193,6 +203,12 @@ class CacheFile
};
Filesystem::unlinkRecursive($this->cachePath, $deleteRootToo = false, $beforeUnlink);
if (!empty(self::$onDeleteCallback)) {
foreach (self::$onDeleteCallback as $callback) {
$callback();
}
}
}
public function opCacheInvalidate($filepath)
......
......@@ -179,7 +179,6 @@ class Fixture extends PHPUnit_Framework_Assert
Piwik::setUserHasSuperUserAccess();
Cache::deleteTrackerCache();
\Piwik\Cache\PersistentCache::_reset();
static::loadAllPlugins($this->getTestEnvironment(), $this->testCaseClass);
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter