Broke out iterators into their own class files

This commit is contained in:
Andy Miller
2015-02-28 13:56:53 -07:00
parent 0f312a3c43
commit e154b13b6e
3 changed files with 26 additions and 22 deletions

View File

@@ -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);
}
}

View File

@@ -0,0 +1,13 @@
<?php
namespace Grav\Common\Filesystem;
class RecursiveFileFilterIterator 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);
}
}

View File

@@ -0,0 +1,11 @@
<?php
namespace Grav\Common\Filesystem;
class RecursiveFolderFilterIterator extends \RecursiveFilterIterator
{
public function accept()
{
// only accept directories
return $this->current()->isDir();
}
}