You are here

public function File_Iterator_Factory::getFileIterator in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/phpunit/php-file-iterator/src/Factory.php \File_Iterator_Factory::getFileIterator()

Parameters

array|string $paths:

array|string $suffixes:

array|string $prefixes:

array $exclude:

Return value

AppendIterator

File

vendor/phpunit/php-file-iterator/src/Factory.php, line 27

Class

File_Iterator_Factory
Factory Method implementation that creates a File_Iterator that operates on an AppendIterator that contains an RecursiveDirectoryIterator for each given path.

Code

public function getFileIterator($paths, $suffixes = '', $prefixes = '', array $exclude = array()) {
  if (is_string($paths)) {
    $paths = array(
      $paths,
    );
  }
  $paths = $this
    ->getPathsAfterResolvingWildcards($paths);
  $exclude = $this
    ->getPathsAfterResolvingWildcards($exclude);
  if (is_string($prefixes)) {
    if ($prefixes != '') {
      $prefixes = array(
        $prefixes,
      );
    }
    else {
      $prefixes = array();
    }
  }
  if (is_string($suffixes)) {
    if ($suffixes != '') {
      $suffixes = array(
        $suffixes,
      );
    }
    else {
      $suffixes = array();
    }
  }
  $iterator = new AppendIterator();
  foreach ($paths as $path) {
    if (is_dir($path)) {
      $iterator
        ->append(new File_Iterator(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::FOLLOW_SYMLINKS)), $suffixes, $prefixes, $exclude, $path));
    }
  }
  return $iterator;
}