class SourceMapper
@no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit
@internal This class is not covered by the backward compatibility promise for PHPUnit
Hierarchy
- class \PHPUnit\TextUI\Configuration\SourceMapper
Expanded class hierarchy of SourceMapper
File
-
vendor/
phpunit/ phpunit/ src/ TextUI/ Configuration/ SourceMapper.php, line 21
Namespace
PHPUnit\TextUI\ConfigurationView source
final class SourceMapper {
/**
* @psalm-var SplObjectStorage<Source, array<non-empty-string, true>>
*/
private static ?SplObjectStorage $files = null;
/**
* @psalm-return array<non-empty-string, true>
*/
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;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
SourceMapper::$files | private static | property | @psalm-var SplObjectStorage<Source, array<non-empty-string, true>> |
SourceMapper::map | public | function | @psalm-return array<non-empty-string, true> |