Preview: MissingPropertiesFactory.php
Size: 1.32 KB
/opt/cpanel/ea-wappspector/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;
}
}
Directory Contents
Dirs: 0 × Files: 3