From a3b95839f5cda01a6a24715489f0f02a4267f014 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Thu, 13 Mar 2014 17:11:23 +0100 Subject: [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 --- phpBB/phpbb/extension/finder.php | 3 +- .../phpbb/extension/recursive_filter_iterator.php | 32 ++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 phpBB/phpbb/extension/recursive_filter_iterator.php (limited to 'phpBB/phpbb') 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 @@ +current()->getFilename(), self::$ignore_folders); + } +} -- cgit v1.2.1