mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 22:28:51 +00:00
[ticket/12789] Remove the directories in \phpbb\cache\driver\memory::purge()
PHPBB3-12789
This commit is contained in:
parent
bef9d64179
commit
e7251252ce
1 changed files with 57 additions and 13 deletions
70
phpBB/phpbb/cache/driver/memory.php
vendored
70
phpBB/phpbb/cache/driver/memory.php
vendored
|
@ -150,28 +150,34 @@ abstract class memory extends \phpbb\cache\driver\base
|
||||||
function purge()
|
function purge()
|
||||||
{
|
{
|
||||||
// Purge all phpbb cache files
|
// Purge all phpbb cache files
|
||||||
$dir = @opendir($this->cache_dir);
|
try
|
||||||
|
{
|
||||||
if (!$dir)
|
$iterator = new \DirectoryIterator($this->cache_dir);
|
||||||
|
}
|
||||||
|
catch (\Exception $e)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (($entry = readdir($dir)) !== false)
|
foreach ($iterator as $fileInfo)
|
||||||
{
|
{
|
||||||
if (strpos($entry, 'container_') !== 0 &&
|
if ($fileInfo->isDot())
|
||||||
strpos($entry, 'url_matcher') !== 0 &&
|
|
||||||
strpos($entry, 'sql_') !== 0 &&
|
|
||||||
strpos($entry, 'data_') !== 0 &&
|
|
||||||
strpos($entry, 'ctpl_') !== 0 &&
|
|
||||||
strpos($entry, 'tpl_') !== 0)
|
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
$filename = $fileInfo->getFilename();
|
||||||
$this->remove_file($this->cache_dir . $entry);
|
if ($fileInfo->isDir())
|
||||||
|
{
|
||||||
|
$this->remove_dir($fileInfo->getPathname());
|
||||||
|
}
|
||||||
|
else if (strpos($filename, 'container_') !== 0 &&
|
||||||
|
strpos($filename, 'url_matcher') !== 0 &&
|
||||||
|
strpos($filename, 'sql_') !== 0 &&
|
||||||
|
strpos($filename, 'data_') !== 0)
|
||||||
|
{
|
||||||
|
$this->remove_file($fileInfo->getPathname());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
closedir($dir);
|
|
||||||
|
|
||||||
unset($this->vars);
|
unset($this->vars);
|
||||||
unset($this->sql_rowset);
|
unset($this->sql_rowset);
|
||||||
|
@ -425,6 +431,44 @@ abstract class memory extends \phpbb\cache\driver\base
|
||||||
return @unlink($filename);
|
return @unlink($filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove directory
|
||||||
|
*
|
||||||
|
* @param string $dir Directory to remove
|
||||||
|
*
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
protected function remove_dir($dir)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
$iterator = new \DirectoryIterator($dir);
|
||||||
|
}
|
||||||
|
catch (\Exception $e)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($iterator as $fileInfo)
|
||||||
|
{
|
||||||
|
if ($fileInfo->isDot())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($fileInfo->isDir())
|
||||||
|
{
|
||||||
|
$this->remove_dir($fileInfo->getPathname());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->remove_file($fileInfo->getPathname());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@rmdir($dir);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if a cache var exists
|
* Check if a cache var exists
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Reference in a new issue