%PDF- %PDF-
Direktori : /home/vacivi36/code/vendor/rector/rector/rules/CodeQuality/NodeFactory/ |
Current File : /home/vacivi36/code/vendor/rector/rector/rules/CodeQuality/NodeFactory/MissingPropertiesFactory.php |
<?php declare (strict_types=1); namespace Rector\CodeQuality\NodeFactory; use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\Property; use PhpParser\Node\Stmt\PropertyProperty; use PHPStan\Type\Type; final class MissingPropertiesFactory { /** * @readonly * @var \Rector\CodeQuality\NodeFactory\PropertyTypeDecorator */ private $propertyTypeDecorator; public function __construct(\Rector\CodeQuality\NodeFactory\PropertyTypeDecorator $propertyTypeDecorator) { $this->propertyTypeDecorator = $propertyTypeDecorator; } /** * @param array<string, Type> $fetchedLocalPropertyNameToTypes * @param string[] $propertyNamesToComplete * @return Property[] */ public function create(array $fetchedLocalPropertyNameToTypes, array $propertyNamesToComplete) : array { $newProperties = []; foreach ($fetchedLocalPropertyNameToTypes as $propertyName => $propertyType) { if (!\in_array($propertyName, $propertyNamesToComplete, \true)) { continue; } $property = new Property(Class_::MODIFIER_PUBLIC, [new PropertyProperty($propertyName)]); $this->propertyTypeDecorator->decorateProperty($property, $propertyType); $newProperties[] = $property; } return $newProperties; } }