File tree Expand file tree Collapse file tree
config/sets/symfony/symfony3
rules-tests/CodeQuality/Rector/ClassMethod/ActionSuffixRemoverRector/Fixture
CodeQuality/Rector/ClassMethod Expand file tree Collapse file tree Original file line number Diff line number Diff line change 22
33declare (strict_types=1 );
44
5- use Rector \Arguments \Rector \ClassMethod \ReplaceArgumentDefaultValueRector ;
6- use Rector \Arguments \ValueObject \ReplaceArgumentDefaultValue ;
75use Rector \Config \RectorConfig ;
86
97return static function (RectorConfig $ rectorConfig ): void {
Original file line number Diff line number Diff line change 4747 ])
4848 ->withPhpSets ()
4949 ->withPreparedSets (
50+ deadCode: true ,
5051 codeQuality: true ,
5152 typeDeclarations: true ,
52- deadCode: true ,
5353 privatization: true ,
5454 naming: true ,
5555 rectorPreset: true
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Rector \Symfony \Tests \Rector \ClassMethod \ActionSuffixRemoverRector \Fixture ;
4+
5+ use Symfony \Bundle \FrameworkBundle \Controller \Controller ;
6+
7+ class SkipMethodExistsAfterSuffixedRemoved extends Controller
8+ {
9+ public function indexAction ()
10+ {
11+ $ this ->index ();
12+ }
13+
14+ private function index ()
15+ {
16+ }
17+ }
Original file line number Diff line number Diff line change 88use PhpParser \Node ;
99use PhpParser \Node \Identifier ;
1010use PhpParser \Node \Stmt \ClassMethod ;
11+ use PHPStan \Reflection \ClassReflection ;
1112use Rector \Rector \AbstractRector ;
13+ use Rector \Reflection \ReflectionResolver ;
1214use Rector \Symfony \Bridge \NodeAnalyzer \ControllerMethodAnalyzer ;
1315use Symplify \RuleDocGenerator \ValueObject \CodeSample \CodeSample ;
1416use Symplify \RuleDocGenerator \ValueObject \RuleDefinition ;
@@ -20,6 +22,7 @@ final class ActionSuffixRemoverRector extends AbstractRector
2022{
2123 public function __construct (
2224 private readonly ControllerMethodAnalyzer $ controllerMethodAnalyzer ,
25+ private readonly ReflectionResolver $ reflectionResolver
2326 ) {
2427 }
2528
@@ -72,6 +75,13 @@ public function refactor(Node $node): ?Node
7275 return null ;
7376 }
7477
78+ $ classReflection = $ this ->reflectionResolver ->resolveClassReflection ($ node );
79+ if ($ classReflection instanceof ClassReflection
80+ && $ classReflection ->hasNativeMethod (rtrim ($ node ->name ->toString (), 'Action ' ))
81+ ) {
82+ return null ;
83+ }
84+
7585 return $ this ->removeSuffix ($ node , 'Action ' );
7686 }
7787
Original file line number Diff line number Diff line change 99use PhpParser \Node \Expr \Variable ;
1010use PhpParser \Node \Name ;
1111use PhpParser \Node \Name \FullyQualified ;
12+ use PhpParser \Node \NullableType ;
1213use PhpParser \Node \Param ;
1314use PhpParser \Node \Stmt \Class_ ;
1415use Rector \Rector \AbstractRector ;
@@ -112,7 +113,7 @@ public function refactor(Node $node): ?Node
112113 $ classMethod ->params [] = new Param (
113114 new Variable ('vote ' ),
114115 new ConstFetch (new Name ('null ' )),
115- new Node \ NullableType (new FullyQualified (self ::VOTE_CLASS ))
116+ new NullableType (new FullyQualified (self ::VOTE_CLASS ))
116117 );
117118
118119 return $ node ;
Original file line number Diff line number Diff line change 66
77use PhpParser \Node ;
88use PhpParser \Node \Arg ;
9- use PhpParser \Node \Expr \Array_ ;
109use PhpParser \Node \ArrayItem ;
1110use PhpParser \Node \Expr ;
11+ use PhpParser \Node \Expr \Array_ ;
1212use PhpParser \Node \Expr \New_ ;
13+ use PhpParser \Node \Identifier ;
1314use PhpParser \Node \Name ;
1415use PhpParser \Node \Name \FullyQualified ;
1516use Rector \PhpParser \Node \Value \ValueResolver ;
@@ -79,14 +80,14 @@ public function refactor(Node $node): ?Node
7980 }
8081
8182 $ argName = $ node ->args [0 ]->name ;
82- if ($ argName !== null && $ argName ->name !== 'options ' ) {
83+ if ($ argName instanceof Identifier && $ argName ->name !== 'options ' ) {
8384 return null ;
8485 }
8586
8687 $ array = $ node ->args [0 ]->value ;
8788 $ namedArgs = [];
8889
89- foreach ($ array ->items as $ key => $ item ) {
90+ foreach ($ array ->items as $ item ) {
9091 if (! $ item instanceof ArrayItem) {
9192 continue ;
9293 }
@@ -105,8 +106,8 @@ public function refactor(Node $node): ?Node
105106 continue ;
106107 }
107108
108- $ arg = new Node \ Arg ($ item ->value );
109- $ arg ->name = new Node \ Identifier ($ keyValue );
109+ $ arg = new Arg ($ item ->value );
110+ $ arg ->name = new Identifier ($ keyValue );
110111
111112 $ namedArgs [] = $ arg ;
112113 }
You can’t perform that action at this time.
0 commit comments