public function __construct(array $sources) { foreach ($sources as $source) { if ($source instanceof \SplFileInfo) { $this->children[] = $source; } elseif (is_string($source) && ($source = realpath($source))) { if (is_file($source)) { $child = new SourceFileInfo($source); $child->setInfoClass(SourceFileInfo::class); $this->children[] = $child; } elseif (is_dir($source)) { $child = new \RecursiveDirectoryIterator($source); $child->setInfoClass(SourceFileInfo::class); $this->children[] = $child; } } } }