From e154b13b6e9adc2d2dfe50775bed56d18589e438 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Sat, 28 Feb 2015 13:56:53 -0700 Subject: [PATCH] Broke out iterators into their own class files --- system/src/Grav/Common/Filesystem/Folder.php | 24 ++----------------- .../RecursiveFileFilterIterator.php | 13 ++++++++++ .../RecursiveFolderFilterIterator.php | 11 +++++++++ 3 files changed, 26 insertions(+), 22 deletions(-) create mode 100644 system/src/Grav/Common/Filesystem/RecursiveFileFilterIterator.php create mode 100644 system/src/Grav/Common/Filesystem/RecursiveFolderFilterIterator.php diff --git a/system/src/Grav/Common/Filesystem/Folder.php b/system/src/Grav/Common/Filesystem/Folder.php index 223b3dce8..b30751e6a 100644 --- a/system/src/Grav/Common/Filesystem/Folder.php +++ b/system/src/Grav/Common/Filesystem/Folder.php @@ -20,7 +20,7 @@ abstract class Folder $last_modified = 0; $dirItr = new \RecursiveDirectoryIterator($path, \RecursiveDirectoryIterator::SKIP_DOTS); - $filterItr = new GravRecursiveFolderFilterIterator($dirItr); + $filterItr = new RecursiveFolderFilterIterator($dirItr); $itr = new \RecursiveIteratorIterator($filterItr, \RecursiveIteratorIterator::SELF_FIRST); /** @var \RecursiveDirectoryIterator $file */ @@ -45,7 +45,7 @@ abstract class Folder $last_modified = 0; $dirItr = new \RecursiveDirectoryIterator($path, \RecursiveDirectoryIterator::SKIP_DOTS); - $filterItr = new GravRecursiveFileFilterIterator($dirItr); + $filterItr = new RecursiveFileFilterIterator($dirItr); $itr = new \RecursiveIteratorIterator($filterItr, \RecursiveIteratorIterator::SELF_FIRST); /** @var \RecursiveDirectoryIterator $file */ @@ -301,23 +301,3 @@ abstract class Folder return @rmdir($folder); } } - -class GravRecursiveFolderFilterIterator extends \RecursiveFilterIterator -{ - public function accept() - { - // only accept directories - return $this->current()->isDir(); - } -} - -class GravRecursiveFileFilterIterator extends \RecursiveFilterIterator -{ - public static $FILTERS = ['.DS_Store']; - - public function accept() - { - // Ensure any filtered file names are skipped - return !in_array($this->current()->getFilename(), self::$FILTERS, true); - } -} diff --git a/system/src/Grav/Common/Filesystem/RecursiveFileFilterIterator.php b/system/src/Grav/Common/Filesystem/RecursiveFileFilterIterator.php new file mode 100644 index 000000000..be9667c3b --- /dev/null +++ b/system/src/Grav/Common/Filesystem/RecursiveFileFilterIterator.php @@ -0,0 +1,13 @@ +current()->getFilename(), self::$FILTERS, true); + } +} diff --git a/system/src/Grav/Common/Filesystem/RecursiveFolderFilterIterator.php b/system/src/Grav/Common/Filesystem/RecursiveFolderFilterIterator.php new file mode 100644 index 000000000..f2d63f72e --- /dev/null +++ b/system/src/Grav/Common/Filesystem/RecursiveFolderFilterIterator.php @@ -0,0 +1,11 @@ +current()->isDir(); + } +}