rector/rules/Php80/NodeAnalyzer/PromotedPropertyResolver.php
2024-01-02 02:40:38 +00:00

31 lines
801 B
PHP

<?php
declare (strict_types=1);
namespace Rector\Php80\NodeAnalyzer;
use PhpParser\Node\Param;
use PhpParser\Node\Stmt\Class_;
use PhpParser\Node\Stmt\ClassMethod;
use Rector\ValueObject\MethodName;
final class PromotedPropertyResolver
{
/**
* @return Param[]
*/
public function resolveFromClass(Class_ $class) : array
{
$constructClassMethod = $class->getMethod(MethodName::CONSTRUCT);
if (!$constructClassMethod instanceof ClassMethod) {
return [];
}
$promotedPropertyParams = [];
foreach ($constructClassMethod->getParams() as $param) {
if ($param->flags === 0) {
continue;
}
$promotedPropertyParams[] = $param;
}
return $promotedPropertyParams;
}
}