mirror of
https://github.com/rectorphp/rector.git
synced 2025-02-21 01:41:00 +01:00
50 lines
1.3 KiB
PHP
50 lines
1.3 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Rector\Naming\ParamRenamer;
|
|
|
|
use PhpParser\Node\Param;
|
|
use Rector\BetterPhpDocParser\PhpDocManipulator\PropertyDocBlockManipulator;
|
|
use Rector\Naming\ValueObject\ParamRename;
|
|
use Rector\Naming\VariableRenamer;
|
|
|
|
final class ParamRenamer
|
|
{
|
|
/**
|
|
* @var VariableRenamer
|
|
*/
|
|
private $variableRenamer;
|
|
|
|
/**
|
|
* @var PropertyDocBlockManipulator
|
|
*/
|
|
private $propertyDocBlockManipulator;
|
|
|
|
public function __construct(
|
|
VariableRenamer $variableRenamer,
|
|
PropertyDocBlockManipulator $propertyDocBlockManipulator
|
|
) {
|
|
$this->variableRenamer = $variableRenamer;
|
|
$this->propertyDocBlockManipulator = $propertyDocBlockManipulator;
|
|
}
|
|
|
|
public function rename(ParamRename $paramRename): void
|
|
{
|
|
// 1. rename param
|
|
$paramRename->getVariable()
|
|
->name = $paramRename->getExpectedName();
|
|
|
|
// 2. rename param in the rest of the method
|
|
$this->variableRenamer->renameVariableInFunctionLike(
|
|
$paramRename->getFunctionLike(),
|
|
null,
|
|
$paramRename->getCurrentName(),
|
|
$paramRename->getExpectedName()
|
|
);
|
|
|
|
// 3. rename @param variable in docblock too
|
|
$this->propertyDocBlockManipulator->renameParameterNameInDocBlock($paramRename);
|
|
}
|
|
}
|