1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-06-25 04:24:31 +02:00

[ticket/12268] Extension finder should not crawl through .git/ of extensions

This new filter ignores .svn and .git directories.
When searching for php classes and template files of extensions
we don't need to look inside these directories.

PHPBB3-12268
This commit is contained in:
Joas Schilling
2014-03-13 17:11:23 +01:00
parent 8a61e4b4c0
commit a3b95839f5
2 changed files with 34 additions and 1 deletions

View File

@ -475,7 +475,8 @@ class finder
}
$directory_pattern = '#' . $directory_pattern . '#';
$iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($path), \RecursiveIteratorIterator::SELF_FIRST);
$iterator = new \phpbb\extension\recursive_filter_iterator(new \RecursiveDirectoryIterator($path));
$iterator = new \RecursiveIteratorIterator($iterator, \RecursiveIteratorIterator::SELF_FIRST);
foreach ($iterator as $file_info)
{
$filename = $file_info->getFilename();

View File

@ -0,0 +1,32 @@
<?php
/**
*
* @package extension
* @copyright (c) 2014 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
namespace phpbb\extension;
/**
* Class recursive_filter_iterator
*
* This Filter ignores .svn and .git directories.
* When searching for php classes and template files of extensions
* we don't need to look inside these directories.
*
* @package phpbb\extension
*/
class recursive_filter_iterator extends \RecursiveFilterIterator
{
public static $ignore_folders = array(
'.svn',
'.git',
);
public function accept()
{
return !in_array($this->current()->getFilename(), self::$ignore_folders);
}
}