3 declare(strict_types
=1);
5 use Rector\Caching\ValueObject\Storage\FileCacheStorage
;
6 use Rector\CodeQuality\Rector\Array_\CallableThisArrayToAnonymousFunctionRector
;
7 use Rector\CodeQuality\Rector\Concat\JoinStringConcatRector
;
8 use Rector\CodeQuality\Rector\FunctionLike\SimplifyUselessVariableRector
;
9 use Rector\CodeQuality\Rector\If_\CombineIfRector
;
10 use Rector\CodeQuality\Rector\If_\ExplicitBoolCompareRector
;
11 use Rector\CodeQuality\Rector\If_\SimplifyIfElseToTernaryRector
;
12 use Rector\CodeQuality\Rector\If_\SimplifyIfReturnBoolRector
;
13 use Rector\CodeQuality\Rector\Isset_\IssetOnPropertyObjectToPropertyExistsRector
;
14 use Rector\CodingStyle\Rector\Catch_\CatchExceptionNameMatchingTypeRector
;
15 use Rector\CodingStyle\Rector\Class_\AddArrayDefaultToArrayPropertyRector
;
16 use Rector\CodingStyle\Rector\Closure\StaticClosureRector
;
17 use Rector\CodingStyle\Rector\Encapsed\EncapsedStringsToSprintfRector
;
18 use Rector\CodingStyle\Rector\Encapsed\WrapEncapsedVariableInCurlyBracesRector
;
19 use Rector\CodingStyle\Rector\FuncCall\StrictArraySearchRector
;
20 use Rector\CodingStyle\Rector\PostInc\PostIncDecToPreIncDecRector
;
21 use Rector\CodingStyle\Rector\Stmt\NewlineAfterStatementRector
;
22 use Rector\CodingStyle\Rector\String_\SymplifyQuoteEscapeRector
;
23 use Rector\Config\RectorConfig
;
24 use Rector\DeadCode\Rector\ClassMethod\RemoveUselessParamTagRector
;
25 use Rector\DeadCode\Rector\Property\RemoveUselessVarTagRector
;
26 use Rector\DeadCode\Rector\StaticCall\RemoveParentCallWithoutParentRector
;
27 use Rector\Php71\Rector\ClassConst\PublicConstantVisibilityRector
;
28 use Rector\Php71\Rector\FuncCall\CountOnNullRector
;
29 use Rector\Php71\Rector\FuncCall\RemoveExtraParametersRector
;
30 use Rector\Set\ValueObject\LevelSetList
;
31 use Rector\Set\ValueObject\SetList
;
32 use Rector\Strict\Rector\Empty_\DisallowedEmptyRuleFixerRector
;
33 use Rector\TypeDeclaration\Rector\Property\TypedPropertyFromAssignsRector
;
35 return static function (RectorConfig
$rectorConfig): void
{
36 define('DOKU_INC', __DIR__
. '/../');
37 define('DOKU_BASE','/');
38 define('DOKU_COOKIE','DWCOOKIE');
40 $rectorConfig->paths([
45 $rectorConfig->bootstrapFiles([
46 __DIR__
. '/../inc/load.php',
49 $rectorConfig->importNames();
50 $rectorConfig->importShortClasses(false);
51 $rectorConfig->cacheClass(FileCacheStorage
::class);
52 $rectorConfig->cacheDirectory(__DIR__
. '/.rector-cache');
54 // define sets of rules
56 LevelSetList
::UP_TO_PHP_74
,
57 SetList
::CODE_QUALITY
,
59 SetList
::CODING_STYLE
,
64 __DIR__
. '/../inc/lang/*',
65 __DIR__
. '/../lib/plugins/*/_test/*',
66 __DIR__
. '/../lib/tpl/*/_test/*',
67 __DIR__
. '/../lib/plugins/*/lang/*',
68 __DIR__
. '/../lib/tpl/*/lang/*',
69 __DIR__
. '/../lib/plugins/*/vendor/*',
70 __DIR__
. '/../lib/tpl/*/vendor/*',
71 __DIR__
. '/../lib/plugins/*/skel/*', // dev plugin
73 // third party libs, not yet moved to composer
74 __DIR__
. '/../inc/DifferenceEngine.php',
75 __DIR__
. '/../inc/JpegMeta.php',
76 __DIR__
. '/../lib/plugins/authad/adLDAP',
79 SimplifyIfElseToTernaryRector
::class,
80 NewlineAfterStatementRector
::class,
81 CombineIfRector
::class,
82 ExplicitBoolCompareRector
::class,
83 IssetOnPropertyObjectToPropertyExistsRector
::class, // maybe?
84 SymplifyQuoteEscapeRector
::class,
85 CatchExceptionNameMatchingTypeRector
::class,
86 PublicConstantVisibilityRector
::class, // open for discussion
87 EncapsedStringsToSprintfRector
::class,
88 CallableThisArrayToAnonymousFunctionRector
::class,
89 StaticClosureRector
::class,
90 SimplifyUselessVariableRector
::class, // seems to strip constructor property initializations
91 PostIncDecToPreIncDecRector
::class,
92 RemoveUselessParamTagRector
::class,
93 DisallowedEmptyRuleFixerRector
::class,
94 CountOnNullRector
::class, // adds unwanted is_countable checks?
95 RemoveParentCallWithoutParentRector
::class,
96 WrapEncapsedVariableInCurlyBracesRector
::class,
97 SimplifyIfReturnBoolRector
::class,
98 StrictArraySearchRector
::class, // we cannot assume strict search is always wanted
99 AddArrayDefaultToArrayPropertyRector
::class, // may break code differentiating between null and empty array
100 RemoveUselessVarTagRector
::class,
101 TypedPropertyFromAssignsRector
::class, // maybe?
102 JoinStringConcatRector
::class, // this does not count variables, so it creates overlong lines
103 RemoveExtraParametersRector
::class, // this actually broke code