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 |