mirror of https://github.com/rectorphp/rector.git
32 lines
857 B
PHP
32 lines
857 B
PHP
<?php
|
|
|
|
declare (strict_types=1);
|
|
namespace Rector\TypeDeclaration\NodeAnalyzer;
|
|
|
|
use PhpParser\Node\FunctionLike;
|
|
use PhpParser\Node\Param;
|
|
use Rector\NodeNameResolver\NodeNameResolver;
|
|
final class ParamAnalyzer
|
|
{
|
|
/**
|
|
* @readonly
|
|
* @var \Rector\NodeNameResolver\NodeNameResolver
|
|
*/
|
|
private $nodeNameResolver;
|
|
public function __construct(NodeNameResolver $nodeNameResolver)
|
|
{
|
|
$this->nodeNameResolver = $nodeNameResolver;
|
|
}
|
|
public function getParamByName(string $desiredParamName, FunctionLike $functionLike) : ?Param
|
|
{
|
|
foreach ($functionLike->getParams() as $param) {
|
|
$paramName = $this->nodeNameResolver->getName($param);
|
|
if ('$' . $paramName !== $desiredParamName) {
|
|
continue;
|
|
}
|
|
return $param;
|
|
}
|
|
return null;
|
|
}
|
|
}
|