public static function fromNonDirectory($nonDirectory) { if (!file_exists($nonDirectory)) { return new self(sprintf('"%s" does not exists', $nonDirectory)); } return new self(sprintf('"%s" must be a directory, not a file', $nonDirectory)); }
/** * @param string[] $directories directories to scan * * @throws InvalidDirectory * @throws InvalidFileInfo */ public function __construct(array $directories) { $this->aggregateSourceLocator = new AggregateSourceLocator(array_values(array_map(function ($directory) { if (!is_string($directory)) { throw InvalidDirectory::fromNonStringValue($directory); } if (!is_dir($directory)) { throw InvalidDirectory::fromNonDirectory($directory); } return new FileIteratorSourceLocator(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory, RecursiveDirectoryIterator::SKIP_DOTS))); }, $directories))); }