Skip to content

Commit 11ab1be

Browse files
committed
chore: update rector.php
1 parent 2aa4cb3 commit 11ab1be

File tree

1 file changed

+33
-29
lines changed

1 file changed

+33
-29
lines changed

rector.php

Lines changed: 33 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<?php
22

3-
use Rector\Config\RectorConfig;
3+
declare(strict_types=1);
4+
45
use Rector\CodeQuality\Rector\BooleanAnd\SimplifyEmptyArrayCheckRector;
6+
use Rector\CodeQuality\Rector\Class_\CompleteDynamicPropertiesRector;
57
use Rector\CodeQuality\Rector\Expression\InlineIfToExplicitIfRector;
6-
use Rector\CodeQuality\Rector\For_\ForToForeachRector;
78
use Rector\CodeQuality\Rector\Foreach_\UnusedForeachValueToArrayKeysRector;
8-
use Rector\CodeQuality\Rector\FuncCall\AddPregQuoteDelimiterRector;
99
use Rector\CodeQuality\Rector\FuncCall\ChangeArrayPushToArrayAssignRector;
1010
use Rector\CodeQuality\Rector\FuncCall\SimplifyRegexPatternRector;
1111
use Rector\CodeQuality\Rector\FuncCall\SimplifyStrposLowerRector;
@@ -18,26 +18,34 @@
1818
use Rector\CodingStyle\Rector\ClassMethod\FuncGetArgsToVariadicParamRector;
1919
use Rector\CodingStyle\Rector\ClassMethod\MakeInheritedMethodVisibilitySameAsParentRector;
2020
use Rector\CodingStyle\Rector\FuncCall\CountArrayToEmptyArrayComparisonRector;
21+
use Rector\Config\RectorConfig;
2122
use Rector\Core\ValueObject\PhpVersion;
2223
use Rector\DeadCode\Rector\ClassMethod\RemoveUnusedPromotedPropertyRector;
23-
use Rector\DeadCode\Rector\MethodCall\RemoveEmptyMethodCallRector;
2424
use Rector\EarlyReturn\Rector\Foreach_\ChangeNestedForeachIfsToEarlyContinueRector;
2525
use Rector\EarlyReturn\Rector\If_\ChangeIfElseValueAssignToEarlyReturnRector;
2626
use Rector\EarlyReturn\Rector\If_\RemoveAlwaysElseRector;
2727
use Rector\EarlyReturn\Rector\Return_\PreparedValueToEarlyReturnRector;
2828
use Rector\Php55\Rector\String_\StringClassNameToClassConstantRector;
29-
use Rector\Php56\Rector\FunctionLike\AddDefaultValueForUndefinedVariableRector;
3029
use Rector\Php73\Rector\FuncCall\JsonThrowOnErrorRector;
3130
use Rector\Php73\Rector\FuncCall\StringifyStrNeedlesRector;
32-
use Rector\Php74\Rector\Property\TypedPropertyRector;
31+
use Rector\PHPUnit\AnnotationsToAttributes\Rector\Class_\AnnotationWithValueToAttributeRector;
32+
use Rector\PHPUnit\CodeQuality\Rector\Class_\YieldDataProviderRector;
3333
use Rector\PHPUnit\Set\PHPUnitSetList;
34-
use Rector\PSR4\Rector\FileWithoutNamespace\NormalizeNamespaceByPSR4ComposerAutoloadRector;
34+
use Rector\Privatization\Rector\Property\PrivatizeFinalClassPropertyRector;
3535
use Rector\Set\ValueObject\LevelSetList;
3636
use Rector\Set\ValueObject\SetList;
37+
use Rector\TypeDeclaration\Rector\Property\TypedPropertyFromAssignsRector;
3738

3839
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->sets([
41+
SetList::DEAD_CODE,
42+
LevelSetList::UP_TO_PHP_74,
43+
PHPUnitSetList::PHPUNIT_CODE_QUALITY,
44+
PHPUnitSetList::PHPUNIT_100,
45+
]);
46+
4047
$rectorConfig->parallel();
48+
4149
// The paths to refactor (can also be supplied with CLI arguments)
4250
$rectorConfig->paths([
4351
__DIR__ . '/app/',
@@ -58,42 +66,34 @@
5866
$rectorConfig->phpstanConfig(__DIR__ . '/phpstan.neon.dist');
5967
}
6068

69+
// Set the target version for refactoring
70+
$rectorConfig->phpVersion(PhpVersion::PHP_74);
6171

6272
// Auto-import fully qualified class names
6373
$rectorConfig->importNames();
6474

6575
// Are there files or rules you need to skip?
6676
$rectorConfig->skip([
67-
__DIR__ . '/app/Config/Pager.php',
68-
__DIR__ . '/app/Config/Validation.php',
6977
__DIR__ . '/app/Views',
7078

7179
JsonThrowOnErrorRector::class,
7280
StringifyStrNeedlesRector::class,
81+
YieldDataProviderRector::class,
7382

7483
// Note: requires php 8
7584
RemoveUnusedPromotedPropertyRector::class,
76-
77-
// Ignore tests that might make calls without a result
78-
RemoveEmptyMethodCallRector::class => [
79-
__DIR__ . '/tests',
80-
],
81-
82-
// Ignore files that should not be namespaced
83-
NormalizeNamespaceByPSR4ComposerAutoloadRector::class => [
84-
__DIR__ . '/app/Helpers',
85-
],
85+
AnnotationWithValueToAttributeRector::class,
8686

8787
// May load view files directly when detecting classes
8888
StringClassNameToClassConstantRector::class,
89-
90-
// May be uninitialized on purpose
91-
AddDefaultValueForUndefinedVariableRector::class,
9289
]);
90+
91+
// auto import fully qualified class names
92+
$rectorConfig->importNames();
93+
9394
$rectorConfig->rule(SimplifyUselessVariableRector::class);
9495
$rectorConfig->rule(RemoveAlwaysElseRector::class);
9596
$rectorConfig->rule(CountArrayToEmptyArrayComparisonRector::class);
96-
$rectorConfig->rule(ForToForeachRector::class);
9797
$rectorConfig->rule(ChangeNestedForeachIfsToEarlyContinueRector::class);
9898
$rectorConfig->rule(ChangeIfElseValueAssignToEarlyReturnRector::class);
9999
$rectorConfig->rule(SimplifyStrposLowerRector::class);
@@ -106,15 +106,19 @@
106106
$rectorConfig->rule(UnusedForeachValueToArrayKeysRector::class);
107107
$rectorConfig->rule(ChangeArrayPushToArrayAssignRector::class);
108108
$rectorConfig->rule(UnnecessaryTernaryExpressionRector::class);
109-
$rectorConfig->rule(AddPregQuoteDelimiterRector::class);
110109
$rectorConfig->rule(SimplifyRegexPatternRector::class);
111110
$rectorConfig->rule(FuncGetArgsToVariadicParamRector::class);
112111
$rectorConfig->rule(MakeInheritedMethodVisibilitySameAsParentRector::class);
113112
$rectorConfig->rule(SimplifyEmptyArrayCheckRector::class);
114-
$rectorConfig->rule(NormalizeNamespaceByPSR4ComposerAutoloadRector::class);
115113
$rectorConfig
116-
->ruleWithConfiguration(TypedPropertyRector::class, [
117-
// Set to false if you use in libraries, or it does create breaking changes.
118-
TypedPropertyRector::INLINE_PUBLIC => false,
114+
->ruleWithConfiguration(TypedPropertyFromAssignsRector::class, [
115+
/**
116+
* The INLINE_PUBLIC value is default to false to avoid BC break, if you use for libraries and want to preserve BC break, you don't need to configure it, as it included in LevelSetList::UP_TO_PHP_74
117+
* Set to true for projects that allow BC break
118+
*/
119+
TypedPropertyFromAssignsRector::INLINE_PUBLIC => false,
119120
]);
121+
$rectorConfig->rule(StringClassNameToClassConstantRector::class);
122+
$rectorConfig->rule(PrivatizeFinalClassPropertyRector::class);
123+
$rectorConfig->rule(CompleteDynamicPropertiesRector::class);
120124
};

0 commit comments

Comments
 (0)