[ticket/16955] Wrap RecursiveDirectoryIteratorr calls for dot prefix filter

PHPBB3-16955
This commit is contained in:
Marc Alexander 2022-12-26 14:42:49 +01:00
parent 40e8a737c3
commit 733f4e2530
No known key found for this signature in database
GPG key ID: 50E0D2423696F995

View file

@ -22,9 +22,38 @@ namespace phpbb\iterator;
*/
class recursive_dot_prefix_filter_iterator extends \RecursiveFilterIterator
{
public function accept()
/**
* Check whether the current element of the iterator is acceptable
*
* @return bool
*/
public function accept(): bool
{
$filename = $this->current()->getFilename();
return $filename[0] !== '.' || !$this->current()->isDir();
}
/**
* Get sub path
*
* @return string
*/
public function getSubPath(): string
{
$directory_iterator = $this->getInnerIterator();
assert($directory_iterator instanceof \RecursiveDirectoryIterator);
return $directory_iterator->getSubPath();
}
/**
* Get sub path and name
*
* @return string
*/
public function getSubPathname(): string
{
$directory_iterator = $this->getInnerIterator();
assert($directory_iterator instanceof \RecursiveDirectoryIterator);
return $directory_iterator->getSubPathname();
}
}