function SourceMapper::map
@psalm-return array<non-empty-string, true>
File
-
vendor/
phpunit/ phpunit/ src/ TextUI/ Configuration/ SourceMapper.php, line 31
Class
- SourceMapper
- @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit
Namespace
PHPUnit\TextUI\ConfigurationCode
public function map(Source $source) : array {
if (self::$files === null) {
self::$files = new SplObjectStorage();
}
if (isset(self::$files[$source])) {
return self::$files[$source];
}
$files = [];
foreach ($source->includeDirectories() as $directory) {
foreach ((new FileIteratorFacade())->getFilesAsArray($directory->path(), $directory->suffix(), $directory->prefix()) as $file) {
$file = realpath($file);
if (!$file) {
continue;
}
$files[$file] = true;
}
}
foreach ($source->includeFiles() as $file) {
$file = realpath($file->path());
if (!$file) {
continue;
}
$files[$file] = true;
}
foreach ($source->excludeDirectories() as $directory) {
foreach ((new FileIteratorFacade())->getFilesAsArray($directory->path(), $directory->suffix(), $directory->prefix()) as $file) {
$file = realpath($file);
if (!$file) {
continue;
}
if (!isset($files[$file])) {
continue;
}
unset($files[$file]);
}
}
foreach ($source->excludeFiles() as $file) {
$file = realpath($file->path());
if (!$file) {
continue;
}
if (!isset($files[$file])) {
continue;
}
unset($files[$file]);
}
self::$files[$source] = $files;
return $files;
}