mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 11:28:25 +00:00
parent
17b25388b3
commit
8a81903e37
2 changed files with 22 additions and 5 deletions
|
@ -223,11 +223,28 @@ class FileEngine extends CacheEngine {
|
||||||
if (!$this->_init) {
|
if (!$this->_init) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$dir = dir($this->settings['path']);
|
$threshold = $now = false;
|
||||||
if ($check) {
|
if ($check) {
|
||||||
$now = time();
|
$now = time();
|
||||||
$threshold = $now - $this->settings['duration'];
|
$threshold = $now - $this->settings['duration'];
|
||||||
}
|
}
|
||||||
|
$this->_clearDirectory($this->settings['path'], $now, $threshold);
|
||||||
|
foreach ($this->settings['groups'] as $group) {
|
||||||
|
$this->_clearDirectory($this->settings['path'] . $group . DS, $now, $threshold);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used to clear a directory of matching files.
|
||||||
|
*
|
||||||
|
* @param string $path The path to search.
|
||||||
|
* @param integer $now The current timestamp
|
||||||
|
* @param integer $threshold Any file not modified after this value will be deleted.
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
protected function _clearDirectory($path, $now, $threshold) {
|
||||||
|
$dir = dir($path);
|
||||||
$prefixLength = strlen($this->settings['prefix']);
|
$prefixLength = strlen($this->settings['prefix']);
|
||||||
while (($entry = $dir->read()) !== false) {
|
while (($entry = $dir->read()) !== false) {
|
||||||
if (substr($entry, 0, $prefixLength) !== $this->settings['prefix']) {
|
if (substr($entry, 0, $prefixLength) !== $this->settings['prefix']) {
|
||||||
|
@ -236,7 +253,7 @@ class FileEngine extends CacheEngine {
|
||||||
if ($this->_setKey($entry) === false) {
|
if ($this->_setKey($entry) === false) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if ($check) {
|
if ($threshold) {
|
||||||
$mtime = $this->_File->getMTime();
|
$mtime = $this->_File->getMTime();
|
||||||
|
|
||||||
if ($mtime > $threshold) {
|
if ($mtime > $threshold) {
|
||||||
|
@ -256,7 +273,6 @@ class FileEngine extends CacheEngine {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$dir->close();
|
$dir->close();
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -267,9 +267,10 @@ class FileEngineTest extends CakeTestCase {
|
||||||
'duration' => DAY,
|
'duration' => DAY,
|
||||||
'groups' => array('short')
|
'groups' => array('short')
|
||||||
));
|
));
|
||||||
$engine->write('test_key', 'it works', DAY);
|
$key = 'cake_test_test_key';
|
||||||
|
$engine->write($key, 'it works', DAY);
|
||||||
$engine->clear(false);
|
$engine->clear(false);
|
||||||
$this->assertFalse($engine->read('test_key'), 'Key should have been removed');
|
$this->assertFalse($engine->read($key), 'Key should have been removed');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue