class File_Iterator_Factory in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/phpunit/php-file-iterator/src/Factory.php \File_Iterator_Factory
 
Factory Method implementation that creates a File_Iterator that operates on an AppendIterator that contains an RecursiveDirectoryIterator for each given path.
@since Class available since Release 1.1.0
Hierarchy
- class \File_Iterator_Factory
 
Expanded class hierarchy of File_Iterator_Factory
File
- vendor/
phpunit/ php-file-iterator/ src/ Factory.php, line 18  
View source
class File_Iterator_Factory {
  /**
   * @param  array|string   $paths
   * @param  array|string   $suffixes
   * @param  array|string   $prefixes
   * @param  array          $exclude
   * @return AppendIterator
   */
  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;
  }
  /**
   * @param  array $paths
   * @return array
   */
  protected function getPathsAfterResolvingWildcards(array $paths) {
    $_paths = array();
    foreach ($paths as $path) {
      if ($locals = glob($path, GLOB_ONLYDIR)) {
        $_paths = array_merge($_paths, $locals);
      }
      else {
        $_paths[] = $path;
      }
    }
    return $_paths;
  }
}Members
| 
            Name | 
                  Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| 
            File_Iterator_Factory:: | 
                  public | function | ||
| 
            File_Iterator_Factory:: | 
                  protected | function |