%PDF- %PDF-
Direktori : /home/vacivi36/code/vendor/rector/rector/rules/Naming/ValueObjectFactory/ |
Current File : /home/vacivi36/code/vendor/rector/rector/rules/Naming/ValueObjectFactory/PropertyRenameFactory.php |
<?php declare (strict_types=1); namespace Rector\Naming\ValueObjectFactory; use PhpParser\Node\Stmt\ClassLike; use PhpParser\Node\Stmt\Property; use Rector\Core\PhpParser\Node\BetterNodeFinder; use Rector\Naming\ValueObject\PropertyRename; use Rector\NodeNameResolver\NodeNameResolver; /** * @see \Rector\Tests\Naming\ValueObjectFactory\PropertyRenameFactory\PropertyRenameFactoryTest */ final class PropertyRenameFactory { /** * @readonly * @var \Rector\NodeNameResolver\NodeNameResolver */ private $nodeNameResolver; /** * @readonly * @var \Rector\Core\PhpParser\Node\BetterNodeFinder */ private $betterNodeFinder; public function __construct(NodeNameResolver $nodeNameResolver, BetterNodeFinder $betterNodeFinder) { $this->nodeNameResolver = $nodeNameResolver; $this->betterNodeFinder = $betterNodeFinder; } public function createFromExpectedName(Property $property, string $expectedName) : ?PropertyRename { $currentName = $this->nodeNameResolver->getName($property); $classLike = $this->betterNodeFinder->findParentType($property, ClassLike::class); if (!$classLike instanceof ClassLike) { return null; } $className = (string) $this->nodeNameResolver->getName($classLike); return new PropertyRename($property, $expectedName, $currentName, $classLike, $className, $property->props[0]); } }