mirror of
https://github.com/rectorphp/rector.git
synced 2024-06-03 09:50:49 +00:00
c2d3d4a3b4
55227be6c3
Removing SmartFileInfo (#2879)
52 lines
1.6 KiB
PHP
52 lines
1.6 KiB
PHP
<?php
|
|
|
|
declare (strict_types=1);
|
|
namespace Rector\Skipper\SkipVoter;
|
|
|
|
use Rector\Skipper\Contract\SkipVoterInterface;
|
|
use Rector\Skipper\SkipCriteriaResolver\SkippedClassResolver;
|
|
use Rector\Skipper\Skipper\SkipSkipper;
|
|
use RectorPrefix202209\Symplify\PackageBuilder\Reflection\ClassLikeExistenceChecker;
|
|
final class ClassSkipVoter implements SkipVoterInterface
|
|
{
|
|
/**
|
|
* @readonly
|
|
* @var \Symplify\PackageBuilder\Reflection\ClassLikeExistenceChecker
|
|
*/
|
|
private $classLikeExistenceChecker;
|
|
/**
|
|
* @readonly
|
|
* @var \Rector\Skipper\Skipper\SkipSkipper
|
|
*/
|
|
private $skipSkipper;
|
|
/**
|
|
* @readonly
|
|
* @var \Rector\Skipper\SkipCriteriaResolver\SkippedClassResolver
|
|
*/
|
|
private $skippedClassResolver;
|
|
public function __construct(ClassLikeExistenceChecker $classLikeExistenceChecker, SkipSkipper $skipSkipper, SkippedClassResolver $skippedClassResolver)
|
|
{
|
|
$this->classLikeExistenceChecker = $classLikeExistenceChecker;
|
|
$this->skipSkipper = $skipSkipper;
|
|
$this->skippedClassResolver = $skippedClassResolver;
|
|
}
|
|
/**
|
|
* @param string|object $element
|
|
*/
|
|
public function match($element) : bool
|
|
{
|
|
if (\is_object($element)) {
|
|
return \true;
|
|
}
|
|
return $this->classLikeExistenceChecker->doesClassLikeExist($element);
|
|
}
|
|
/**
|
|
* @param string|object $element
|
|
*/
|
|
public function shouldSkip($element, string $filePath) : bool
|
|
{
|
|
$skippedClasses = $this->skippedClassResolver->resolve();
|
|
return $this->skipSkipper->doesMatchSkip($element, $filePath, $skippedClasses);
|
|
}
|
|
}
|