mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +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) {
|
||||
return false;
|
||||
}
|
||||
$dir = dir($this->settings['path']);
|
||||
$threshold = $now = false;
|
||||
if ($check) {
|
||||
$now = time();
|
||||
$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']);
|
||||
while (($entry = $dir->read()) !== false) {
|
||||
if (substr($entry, 0, $prefixLength) !== $this->settings['prefix']) {
|
||||
|
@ -236,7 +253,7 @@ class FileEngine extends CacheEngine {
|
|||
if ($this->_setKey($entry) === false) {
|
||||
continue;
|
||||
}
|
||||
if ($check) {
|
||||
if ($threshold) {
|
||||
$mtime = $this->_File->getMTime();
|
||||
|
||||
if ($mtime > $threshold) {
|
||||
|
@ -256,7 +273,6 @@ class FileEngine extends CacheEngine {
|
|||
}
|
||||
}
|
||||
$dir->close();
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -267,9 +267,10 @@ class FileEngineTest extends CakeTestCase {
|
|||
'duration' => DAY,
|
||||
'groups' => array('short')
|
||||
));
|
||||
$engine->write('test_key', 'it works', DAY);
|
||||
$key = 'cake_test_test_key';
|
||||
$engine->write($key, 'it works', DAY);
|
||||
$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