Skip to content

Commit 19de9fc

Browse files
authored
[Renaming] Allow rename attribute on Param on RenameAttributeRector (#7072)
1 parent 54c8865 commit 19de9fc

5 files changed

Lines changed: 59 additions & 3 deletions

File tree

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?php
2+
3+
namespace Rector\Tests\Renaming\Rector\Class_\RenameAttributeRector\Fixture;
4+
5+
use Rector\Tests\Renaming\Rector\Class_\RenameAttributeRector\Source\SimpleParamAttribute;
6+
7+
final class OnParam
8+
{
9+
public function __construct(
10+
#[SimpleParamAttribute]
11+
private ServiceA $serviceA,
12+
)
13+
{
14+
}
15+
}
16+
17+
?>
18+
-----
19+
<?php
20+
21+
namespace Rector\Tests\Renaming\Rector\Class_\RenameAttributeRector\Fixture;
22+
23+
use Rector\Tests\Renaming\Rector\Class_\RenameAttributeRector\Source\SimpleParamAttribute;
24+
25+
final class OnParam
26+
{
27+
public function __construct(
28+
#[\Rector\Tests\Renaming\Rector\Class_\RenameAttributeRector\Source\NextParamAttribute]
29+
private ServiceA $serviceA,
30+
)
31+
{
32+
}
33+
}
34+
35+
?>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
3+
namespace Rector\Tests\Renaming\Rector\Class_\RenameAttributeRector\Source;
4+
5+
#[\Attribute]
6+
class NextParamAttribute
7+
{
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
3+
namespace Rector\Tests\Renaming\Rector\Class_\RenameAttributeRector\Source;
4+
5+
#[\Attribute]
6+
class SimpleParamAttribute
7+
{
8+
}

rules-tests/Renaming/Rector/Class_/RenameAttributeRector/config/configured_rule.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,11 @@
1111
->ruleWithConfiguration(RenameAttributeRector::class, [
1212
new RenameAttribute(
1313
'Rector\Tests\Renaming\Rector\Class_\RenameAttributeRector\Source\SimpleRoute',
14-
'Rector\Tests\Renaming\Rector\Class_\RenameAttributeRector\Source\NextRoute'
14+
'Rector\Tests\Renaming\Rector\Class_\RenameAttributeRector\Source\NextRoute',
15+
),
16+
new RenameAttribute(
17+
'Rector\Tests\Renaming\Rector\Class_\RenameAttributeRector\Source\SimpleParamAttribute',
18+
'Rector\Tests\Renaming\Rector\Class_\RenameAttributeRector\Source\NextParamAttribute',
1519
),
1620
]);
1721
};

rules/Renaming/Rector/Class_/RenameAttributeRector.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use PhpParser\Node;
88
use PhpParser\Node\Attribute;
99
use PhpParser\Node\Name\FullyQualified;
10+
use PhpParser\Node\Param;
1011
use PhpParser\Node\Stmt\Class_;
1112
use PhpParser\Node\Stmt\ClassMethod;
1213
use PhpParser\Node\Stmt\Property;
@@ -60,11 +61,11 @@ class SomeClass
6061
*/
6162
public function getNodeTypes(): array
6263
{
63-
return [Class_::class, ClassMethod::class, Property::class];
64+
return [Class_::class, ClassMethod::class, Property::class, Param::class];
6465
}
6566

6667
/**
67-
* @param Class_|ClassMethod|Property $node
68+
* @param Class_|ClassMethod|Property|Param $node
6869
*/
6970
public function refactor(Node $node): ?Node
7071
{

0 commit comments

Comments
 (0)