Skip to content

Commit f433a85

Browse files
authored
Merge pull request #24 from codeigniter4/update-to-new-rector-config
Update to new RectorConfig
2 parents 49e1018 + 96a508c commit f433a85

File tree

1 file changed

+35
-46
lines changed

1 file changed

+35
-46
lines changed

src/Template/rector.php

Lines changed: 35 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?php
22

3+
use Rector\Config\RectorConfig;
34
use Rector\CodeQuality\Rector\BooleanAnd\SimplifyEmptyArrayCheckRector;
45
use Rector\CodeQuality\Rector\Expression\InlineIfToExplicitIfRector;
56
use Rector\CodeQuality\Rector\For_\ForToForeachRector;
@@ -17,7 +18,6 @@
1718
use Rector\CodingStyle\Rector\ClassMethod\FuncGetArgsToVariadicParamRector;
1819
use Rector\CodingStyle\Rector\ClassMethod\MakeInheritedMethodVisibilitySameAsParentRector;
1920
use Rector\CodingStyle\Rector\FuncCall\CountArrayToEmptyArrayComparisonRector;
20-
use Rector\Core\Configuration\Option;
2121
use Rector\Core\ValueObject\PhpVersion;
2222
use Rector\DeadCode\Rector\ClassMethod\RemoveUnusedPromotedPropertyRector;
2323
use Rector\DeadCode\Rector\MethodCall\RemoveEmptyMethodCallRector;
@@ -34,46 +34,38 @@
3434
use Rector\PSR4\Rector\FileWithoutNamespace\NormalizeNamespaceByPSR4ComposerAutoloadRector;
3535
use Rector\Set\ValueObject\LevelSetList;
3636
use Rector\Set\ValueObject\SetList;
37-
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
3837

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();
4941
// The paths to refactor (can also be supplied with CLI arguments)
50-
$parameters->set(Option::PATHS, [
42+
$rectorConfig->paths([
5143
__DIR__ . '/app/',
5244
__DIR__ . '/tests/',
5345
]);
5446

5547
// Include Composer's autoload - required for global execution, remove if running locally
56-
$parameters->set(Option::AUTOLOAD_PATHS, [
48+
$rectorConfig->autoloadPaths([
5749
__DIR__ . '/vendor/autoload.php',
5850
]);
5951

6052
// Do you need to include constants, class aliases, or a custom autoloader?
61-
$parameters->set(Option::BOOTSTRAP_FILES, [
53+
$rectorConfig->bootstrapFiles([
6254
realpath(getcwd()) . '/vendor/codeigniter4/framework/system/Test/bootstrap.php',
6355
]);
6456

6557
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');
6759
}
6860

6961
// Set the target version for refactoring
70-
$parameters->set(Option::PHP_VERSION_FEATURES, PhpVersion::PHP_74);
62+
$rectorConfig->phpVersion(PhpVersion::PHP_74);
7163

7264
// Auto-import fully qualified class names
73-
$parameters->set(Option::AUTO_IMPORT_NAMES, true);
65+
$rectorConfig->importNames();
7466

7567
// Are there files or rules you need to skip?
76-
$parameters->set(Option::SKIP, [
68+
$rectorConfig->skip([
7769
__DIR__ . '/app/Views',
7870

7971
JsonThrowOnErrorRector::class,
@@ -98,33 +90,30 @@
9890
// May be uninitialized on purpose
9991
AddDefaultValueForUndefinedVariableRector::class,
10092
]);
101-
102-
// Additional rules to apply
103-
$services = $containerConfigurator->services();
104-
$services->set(SimplifyUselessVariableRector::class);
105-
$services->set(RemoveAlwaysElseRector::class);
106-
$services->set(CountArrayToEmptyArrayComparisonRector::class);
107-
$services->set(ForToForeachRector::class);
108-
$services->set(ChangeNestedForeachIfsToEarlyContinueRector::class);
109-
$services->set(ChangeIfElseValueAssignToEarlyReturnRector::class);
110-
$services->set(SimplifyStrposLowerRector::class);
111-
$services->set(CombineIfRector::class);
112-
$services->set(SimplifyIfReturnBoolRector::class);
113-
$services->set(InlineIfToExplicitIfRector::class);
114-
$services->set(PreparedValueToEarlyReturnRector::class);
115-
$services->set(ShortenElseIfRector::class);
116-
$services->set(SimplifyIfElseToTernaryRector::class);
117-
$services->set(UnusedForeachValueToArrayKeysRector::class);
118-
$services->set(ChangeArrayPushToArrayAssignRector::class);
119-
$services->set(UnnecessaryTernaryExpressionRector::class);
120-
$services->set(AddPregQuoteDelimiterRector::class);
121-
$services->set(SimplifyRegexPatternRector::class);
122-
$services->set(FuncGetArgsToVariadicParamRector::class);
123-
$services->set(MakeInheritedMethodVisibilitySameAsParentRector::class);
124-
$services->set(SimplifyEmptyArrayCheckRector::class);
125-
$services->set(NormalizeNamespaceByPSR4ComposerAutoloadRector::class);
126-
$services->set(TypedPropertyRector::class)
127-
->configure([
93+
$rectorConfig->rule(SimplifyUselessVariableRector::class);
94+
$rectorConfig->rule(RemoveAlwaysElseRector::class);
95+
$rectorConfig->rule(CountArrayToEmptyArrayComparisonRector::class);
96+
$rectorConfig->rule(ForToForeachRector::class);
97+
$rectorConfig->rule(ChangeNestedForeachIfsToEarlyContinueRector::class);
98+
$rectorConfig->rule(ChangeIfElseValueAssignToEarlyReturnRector::class);
99+
$rectorConfig->rule(SimplifyStrposLowerRector::class);
100+
$rectorConfig->rule(CombineIfRector::class);
101+
$rectorConfig->rule(SimplifyIfReturnBoolRector::class);
102+
$rectorConfig->rule(InlineIfToExplicitIfRector::class);
103+
$rectorConfig->rule(PreparedValueToEarlyReturnRector::class);
104+
$rectorConfig->rule(ShortenElseIfRector::class);
105+
$rectorConfig->rule(SimplifyIfElseToTernaryRector::class);
106+
$rectorConfig->rule(UnusedForeachValueToArrayKeysRector::class);
107+
$rectorConfig->rule(ChangeArrayPushToArrayAssignRector::class);
108+
$rectorConfig->rule(UnnecessaryTernaryExpressionRector::class);
109+
$rectorConfig->rule(AddPregQuoteDelimiterRector::class);
110+
$rectorConfig->rule(SimplifyRegexPatternRector::class);
111+
$rectorConfig->rule(FuncGetArgsToVariadicParamRector::class);
112+
$rectorConfig->rule(MakeInheritedMethodVisibilitySameAsParentRector::class);
113+
$rectorConfig->rule(SimplifyEmptyArrayCheckRector::class);
114+
$rectorConfig->rule(NormalizeNamespaceByPSR4ComposerAutoloadRector::class);
115+
$rectorConfig
116+
->ruleWithConfiguration(TypedPropertyRector::class, [
128117
TypedPropertyRector::INLINE_PUBLIC => true,
129118
]);
130119
};

0 commit comments

Comments
 (0)