*/
private $skippedClasses = null;
/**
* @return array
*/
public function resolve() : array
{
// disable cache in tests
if (StaticPHPUnitEnvironment::isPHPUnitRun()) {
$this->skippedClasses = null;
}
// already cached, even only empty array
if ($this->skippedClasses !== null) {
return $this->skippedClasses;
}
$skip = SimpleParameterProvider::provideArrayParameter(Option::SKIP);
$this->skippedClasses = [];
foreach ($skip as $key => $value) {
// e.g. [SomeClass::class] → shift values to [SomeClass::class => null]
if (\is_int($key)) {
$key = $value;
$value = null;
}
if (!\is_string($key)) {
continue;
}
// this only checks for Rector rules, that are always autoloaded
if (!\class_exists($key) && !\interface_exists($key)) {
continue;
}
$this->skippedClasses[$key] = $value;
}
return $this->skippedClasses;
}
}