diff options
Diffstat (limited to 'phpBB/phpbb')
-rw-r--r-- | phpBB/phpbb/extension/finder.php | 3 | ||||
-rw-r--r-- | phpBB/phpbb/extension/recursive_filter_iterator.php | 32 |
2 files changed, 34 insertions, 1 deletions
diff --git a/phpBB/phpbb/extension/finder.php b/phpBB/phpbb/extension/finder.php index c9c16ae6d5..fd19436c16 100644 --- a/phpBB/phpbb/extension/finder.php +++ b/phpBB/phpbb/extension/finder.php @@ -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(); diff --git a/phpBB/phpbb/extension/recursive_filter_iterator.php b/phpBB/phpbb/extension/recursive_filter_iterator.php new file mode 100644 index 0000000000..c2515ecbab --- /dev/null +++ b/phpBB/phpbb/extension/recursive_filter_iterator.php @@ -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); + } +} |