|
1 | 1 | <?php |
2 | 2 |
|
| 3 | +use Rector\Config\RectorConfig; |
3 | 4 | use Rector\CodeQuality\Rector\BooleanAnd\SimplifyEmptyArrayCheckRector; |
4 | 5 | use Rector\CodeQuality\Rector\Expression\InlineIfToExplicitIfRector; |
5 | 6 | use Rector\CodeQuality\Rector\For_\ForToForeachRector; |
|
17 | 18 | use Rector\CodingStyle\Rector\ClassMethod\FuncGetArgsToVariadicParamRector; |
18 | 19 | use Rector\CodingStyle\Rector\ClassMethod\MakeInheritedMethodVisibilitySameAsParentRector; |
19 | 20 | use Rector\CodingStyle\Rector\FuncCall\CountArrayToEmptyArrayComparisonRector; |
20 | | -use Rector\Core\Configuration\Option; |
21 | 21 | use Rector\Core\ValueObject\PhpVersion; |
22 | 22 | use Rector\DeadCode\Rector\ClassMethod\RemoveUnusedPromotedPropertyRector; |
23 | 23 | use Rector\DeadCode\Rector\MethodCall\RemoveEmptyMethodCallRector; |
|
34 | 34 | use Rector\PSR4\Rector\FileWithoutNamespace\NormalizeNamespaceByPSR4ComposerAutoloadRector; |
35 | 35 | use Rector\Set\ValueObject\LevelSetList; |
36 | 36 | use Rector\Set\ValueObject\SetList; |
37 | | -use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; |
38 | 37 |
|
39 | | -return static function (ContainerConfigurator $containerConfigurator): void { |
40 | | - // Rule sets to apply |
41 | | - $containerConfigurator->import(SetList::DEAD_CODE); |
42 | | - $containerConfigurator->import(LevelSetList::UP_TO_PHP_74); |
43 | | - $containerConfigurator->import(PHPUnitSetList::PHPUNIT_SPECIFIC_METHOD); |
44 | | - $containerConfigurator->import(PHPUnitSetList::PHPUNIT_80); |
45 | | - |
46 | | - $parameters = $containerConfigurator->parameters(); |
47 | | - |
48 | | - $parameters->set(Option::PARALLEL, true); |
| 38 | +return static function (RectorConfig $rectorConfig): void { |
| 39 | + $rectorConfig->sets([SetList::DEAD_CODE, LevelSetList::UP_TO_PHP_74, PHPUnitSetList::PHPUNIT_SPECIFIC_METHOD, PHPUnitSetList::PHPUNIT_80]); |
| 40 | + $rectorConfig->parallel(); |
49 | 41 | // The paths to refactor (can also be supplied with CLI arguments) |
50 | | - $parameters->set(Option::PATHS, [ |
| 42 | + $rectorConfig->paths([ |
51 | 43 | __DIR__ . '/src/', |
52 | 44 | __DIR__ . '/tests/', |
53 | 45 | ]); |
54 | 46 |
|
55 | 47 | // Include Composer's autoload - required for global execution, remove if running locally |
56 | | - $parameters->set(Option::AUTOLOAD_PATHS, [ |
| 48 | + $rectorConfig->autoloadPaths([ |
57 | 49 | __DIR__ . '/vendor/autoload.php', |
58 | 50 | ]); |
59 | 51 |
|
60 | 52 | // Do you need to include constants, class aliases, or a custom autoloader? |
61 | | - $parameters->set(Option::BOOTSTRAP_FILES, [ |
| 53 | + $rectorConfig->bootstrapFiles([ |
62 | 54 | realpath(getcwd()) . '/vendor/codeigniter4/framework/system/Test/bootstrap.php', |
63 | 55 | ]); |
64 | 56 |
|
65 | 57 | if (is_file(__DIR__ . '/phpstan.neon.dist')) { |
66 | | - $parameters->set(Option::PHPSTAN_FOR_RECTOR_PATH, __DIR__ . '/phpstan.neon.dist'); |
| 58 | + $rectorConfig->phpstanConfig(__DIR__ . '/phpstan.neon.dist'); |
67 | 59 | } |
68 | 60 |
|
69 | 61 | // Set the target version for refactoring |
70 | | - $parameters->set(Option::PHP_VERSION_FEATURES, PhpVersion::PHP_74); |
| 62 | + $rectorConfig->phpVersion(PhpVersion::PHP_74); |
71 | 63 |
|
72 | 64 | // Auto-import fully qualified class names |
73 | | - $parameters->set(Option::AUTO_IMPORT_NAMES, true); |
| 65 | + $rectorConfig->importNames(); |
74 | 66 |
|
75 | 67 | // Are there files or rules you need to skip? |
76 | | - $parameters->set(Option::SKIP, [ |
77 | | - __DIR__ . '/src/Config/Auth.php', |
| 68 | + $rectorConfig->skip([ |
78 | 69 | __DIR__ . '/src/Views', |
79 | 70 |
|
80 | 71 | JsonThrowOnErrorRector::class, |
|
88 | 79 | __DIR__ . '/tests', |
89 | 80 | ], |
90 | 81 |
|
91 | | - // Ignore files that should not be namespaced |
| 82 | + // Ignore files that should not be namespaced to their folder |
92 | 83 | NormalizeNamespaceByPSR4ComposerAutoloadRector::class => [ |
93 | 84 | __DIR__ . '/src/Helpers', |
94 | 85 | __DIR__ . '/tests/_support', |
|
100 | 91 | // May be uninitialized on purpose |
101 | 92 | AddDefaultValueForUndefinedVariableRector::class, |
102 | 93 | ]); |
103 | | - |
104 | | - // Additional rules to apply |
105 | | - $services = $containerConfigurator->services(); |
106 | | - $services->set(SimplifyUselessVariableRector::class); |
107 | | - $services->set(RemoveAlwaysElseRector::class); |
108 | | - $services->set(CountArrayToEmptyArrayComparisonRector::class); |
109 | | - $services->set(ForToForeachRector::class); |
110 | | - $services->set(ChangeNestedForeachIfsToEarlyContinueRector::class); |
111 | | - $services->set(ChangeIfElseValueAssignToEarlyReturnRector::class); |
112 | | - $services->set(SimplifyStrposLowerRector::class); |
113 | | - $services->set(CombineIfRector::class); |
114 | | - $services->set(SimplifyIfReturnBoolRector::class); |
115 | | - $services->set(InlineIfToExplicitIfRector::class); |
116 | | - $services->set(PreparedValueToEarlyReturnRector::class); |
117 | | - $services->set(ShortenElseIfRector::class); |
118 | | - $services->set(SimplifyIfElseToTernaryRector::class); |
119 | | - $services->set(UnusedForeachValueToArrayKeysRector::class); |
120 | | - $services->set(ChangeArrayPushToArrayAssignRector::class); |
121 | | - $services->set(UnnecessaryTernaryExpressionRector::class); |
122 | | - $services->set(AddPregQuoteDelimiterRector::class); |
123 | | - $services->set(SimplifyRegexPatternRector::class); |
124 | | - $services->set(FuncGetArgsToVariadicParamRector::class); |
125 | | - $services->set(MakeInheritedMethodVisibilitySameAsParentRector::class); |
126 | | - $services->set(SimplifyEmptyArrayCheckRector::class); |
127 | | - $services->set(NormalizeNamespaceByPSR4ComposerAutoloadRector::class); |
128 | | - $services->set(TypedPropertyRector::class) |
129 | | - ->configure([ |
130 | | - TypedPropertyRector::INLINE_PUBLIC => true, |
| 94 | + $rectorConfig->rule(SimplifyUselessVariableRector::class); |
| 95 | + $rectorConfig->rule(RemoveAlwaysElseRector::class); |
| 96 | + $rectorConfig->rule(CountArrayToEmptyArrayComparisonRector::class); |
| 97 | + $rectorConfig->rule(ForToForeachRector::class); |
| 98 | + $rectorConfig->rule(ChangeNestedForeachIfsToEarlyContinueRector::class); |
| 99 | + $rectorConfig->rule(ChangeIfElseValueAssignToEarlyReturnRector::class); |
| 100 | + $rectorConfig->rule(SimplifyStrposLowerRector::class); |
| 101 | + $rectorConfig->rule(CombineIfRector::class); |
| 102 | + $rectorConfig->rule(SimplifyIfReturnBoolRector::class); |
| 103 | + $rectorConfig->rule(InlineIfToExplicitIfRector::class); |
| 104 | + $rectorConfig->rule(PreparedValueToEarlyReturnRector::class); |
| 105 | + $rectorConfig->rule(ShortenElseIfRector::class); |
| 106 | + $rectorConfig->rule(SimplifyIfElseToTernaryRector::class); |
| 107 | + $rectorConfig->rule(UnusedForeachValueToArrayKeysRector::class); |
| 108 | + $rectorConfig->rule(ChangeArrayPushToArrayAssignRector::class); |
| 109 | + $rectorConfig->rule(UnnecessaryTernaryExpressionRector::class); |
| 110 | + $rectorConfig->rule(AddPregQuoteDelimiterRector::class); |
| 111 | + $rectorConfig->rule(SimplifyRegexPatternRector::class); |
| 112 | + $rectorConfig->rule(FuncGetArgsToVariadicParamRector::class); |
| 113 | + $rectorConfig->rule(MakeInheritedMethodVisibilitySameAsParentRector::class); |
| 114 | + $rectorConfig->rule(SimplifyEmptyArrayCheckRector::class); |
| 115 | + $rectorConfig->rule(NormalizeNamespaceByPSR4ComposerAutoloadRector::class); |
| 116 | + $rectorConfig |
| 117 | + ->ruleWithConfiguration(TypedPropertyRector::class, [ |
| 118 | + TypedPropertyRector::INLINE_PUBLIC => false, |
131 | 119 | ]); |
132 | 120 | }; |
0 commit comments