public function File_Iterator_Factory::getFileIterator

Parameters

array|string $paths:

array|string $suffixes:

array|string $prefixes:

array $exclude:

Return value

AppendIterator

File

drupal/core/vendor/phpunit/php-file-iterator/File/Iterator/Factory.php, line 65

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 = array();
  foreach ($paths as $path) {
    if ($locals = glob($path, GLOB_ONLYDIR)) {
      $_paths = array_merge($_paths, $locals);
    }
    else {
      $_paths[] = $path;
    }
  }
  $paths = $_paths;
  unset($_paths);
  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)), $suffixes, $prefixes, $exclude, $path));
    }
  }
  return $iterator;
}