rector/rules/Transform/NodeFactory/PropertyFetchFactory.php

28 lines
782 B
PHP

<?php
declare (strict_types=1);
namespace Rector\Transform\NodeFactory;
use PhpParser\Node\Expr\PropertyFetch;
use PhpParser\Node\Expr\Variable;
use PHPStan\Type\ObjectType;
use Rector\Naming\Naming\PropertyNaming;
final class PropertyFetchFactory
{
/**
* @readonly
* @var \Rector\Naming\Naming\PropertyNaming
*/
private $propertyNaming;
public function __construct(PropertyNaming $propertyNaming)
{
$this->propertyNaming = $propertyNaming;
}
public function createFromType(ObjectType $objectType) : PropertyFetch
{
$thisVariable = new Variable('this');
$propertyName = $this->propertyNaming->fqnToVariableName($objectType->getClassName());
return new PropertyFetch($thisVariable, $propertyName);
}
}