mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +00:00
Fix clearing groups with FileCache and no prefix.
If you used FileCache + groups + an empty prefix cached files would not be cleared as strpos() would fail.
This commit is contained in:
parent
5210f831c8
commit
fc2e1fac4e
2 changed files with 24 additions and 1 deletions
|
@ -415,7 +415,10 @@ class FileEngine extends CacheEngine {
|
|||
$contents = new RecursiveIteratorIterator($directoryIterator, RecursiveIteratorIterator::CHILD_FIRST);
|
||||
foreach ($contents as $object) {
|
||||
$containsGroup = strpos($object->getPathName(), DS . $group . DS) !== false;
|
||||
$hasPrefix = strpos($object->getBaseName(), $this->settings['prefix']) === 0;
|
||||
$hasPrefix = true;
|
||||
if (strlen($this->settings['prefix']) !== 0) {
|
||||
$hasPrefix = strpos($object->getBaseName(), $this->settings['prefix']) === 0;
|
||||
}
|
||||
if ($object->isFile() && $containsGroup && $hasPrefix) {
|
||||
$path = $object->getPathName();
|
||||
$object = null;
|
||||
|
|
|
@ -530,4 +530,24 @@ class FileEngineTest extends CakeTestCase {
|
|||
$this->assertFalse(Cache::read('test_groups5', 'file_groups2'));
|
||||
$this->assertEquals('value 3', Cache::read('test_groups6', 'file_groups3'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that clearGroup works with no prefix.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testGroupClearNoPrefix() {
|
||||
Cache::config('file_groups', array(
|
||||
'engine' => 'File',
|
||||
'duration' => 3600,
|
||||
'prefix' => '',
|
||||
'groups' => array('group_a', 'group_b')
|
||||
));
|
||||
Cache::write('key_1', 'value', 'file_groups');
|
||||
Cache::write('key_2', 'value', 'file_groups');
|
||||
Cache::clearGroup('group_a', 'file_groups');
|
||||
$this->assertFalse(Cache::read('key_1', 'file_groups'), 'Did not delete');
|
||||
$this->assertFalse(Cache::read('key_2', 'file_groups'), 'Did not delete');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue