mirror of
https://github.com/FriendsOfTYPO3/tea.git
synced 2024-12-04 17:16:14 +01:00
[FEATURE] Add Rector (#1031)
This part of #851. In later parts, we'll add a Rector wrapper to `runTests.sh` and a CI job, and apply possible changes suggested by Rector. Part of #851 Closes #125
This commit is contained in:
parent
4ee0848039
commit
ff4f7e3d0a
3 changed files with 108 additions and 1 deletions
3
.gitattributes
vendored
3
.gitattributes
vendored
|
@ -1,7 +1,6 @@
|
|||
/.Build/ export-ignore
|
||||
/.editorconfig export-ignore
|
||||
/.eslintignore export-ignore
|
||||
/eslint.config.json export-ignore
|
||||
/.gitattributes export-ignore
|
||||
/.github/ export-ignore
|
||||
/.gitignore export-ignore
|
||||
|
@ -13,10 +12,12 @@
|
|||
/Configuration/FunctionalTests.xml export-ignore
|
||||
/Configuration/UnitTests.xml export-ignore
|
||||
/Tests/ export-ignore
|
||||
/eslint.config.json export-ignore
|
||||
/package.json export-ignore
|
||||
/phive.xml export-ignore
|
||||
/phpcs.xml export-ignore
|
||||
/phpstan-baseline.neon export-ignore
|
||||
/phpstan.neon export-ignore
|
||||
/rector.php export-ignore
|
||||
/stylelint.config.js export-ignore
|
||||
/tools/ export-ignore binary
|
||||
|
|
|
@ -60,6 +60,8 @@
|
|||
"seld/jsonlint": "^1.10.2",
|
||||
"spaze/phpstan-disallowed-calls": "^3.3",
|
||||
"squizlabs/php_codesniffer": "^3.9.2",
|
||||
"ssch/typo3-rector": "^2.5.0",
|
||||
"ssch/typo3-rector-testing-framework": "^2.0.1",
|
||||
"symfony/console": "^5.4 || ^6.4 || ^7.0",
|
||||
"symfony/translation": "^5.4 || ^6.4 || ^7.0",
|
||||
"symfony/yaml": "^5.4 || ^6.4 || ^7.0",
|
||||
|
@ -195,6 +197,7 @@
|
|||
"rm phpcs.xml",
|
||||
"rm phpstan-baseline.neon",
|
||||
"rm phpstan.neon",
|
||||
"rm rector.php",
|
||||
"rm stylelint.config.js"
|
||||
]
|
||||
},
|
||||
|
|
103
rector.php
Normal file
103
rector.php
Normal file
|
@ -0,0 +1,103 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use Rector\CodeQuality\Rector\If_\ExplicitBoolCompareRector;
|
||||
use Rector\CodeQuality\Rector\Ternary\SwitchNegatedTernaryRector;
|
||||
use Rector\Config\RectorConfig;
|
||||
use Rector\PHPUnit\Set\PHPUnitSetList;
|
||||
use Rector\Set\ValueObject\LevelSetList;
|
||||
use Rector\Set\ValueObject\SetList;
|
||||
use Rector\Strict\Rector\Empty_\DisallowedEmptyRuleFixerRector;
|
||||
use Rector\TypeDeclaration\Rector\ClassMethod\AddVoidReturnTypeWhereNoReturnRector;
|
||||
use Rector\ValueObject\PhpVersion;
|
||||
use Ssch\TYPO3Rector\CodeQuality\General\ConvertImplicitVariablesToExplicitGlobalsRector;
|
||||
use Ssch\TYPO3Rector\CodeQuality\General\ExtEmConfRector;
|
||||
use Ssch\TYPO3Rector\Configuration\Typo3Option;
|
||||
use Ssch\TYPO3Rector\Set\Typo3LevelSetList;
|
||||
use Ssch\TYPO3Rector\Set\Typo3SetList;
|
||||
use Ssch\Typo3RectorTestingFramework\Set\TYPO3TestingFrameworkSetList;
|
||||
|
||||
return RectorConfig::configure()
|
||||
->withPaths([
|
||||
__DIR__ . '/Classes/',
|
||||
__DIR__ . '/Configuration/',
|
||||
__DIR__ . '/Tests/',
|
||||
__DIR__ . '/ext_emconf.php',
|
||||
__DIR__ . '/ext_localconf.php',
|
||||
])
|
||||
->withPhpVersion(PhpVersion::PHP_74)
|
||||
->withPhpSets(
|
||||
true
|
||||
)
|
||||
// Note: We're only enabling a single set by default to improve performance. (Rector needs at least a single set to
|
||||
// run.)
|
||||
//
|
||||
// You can temporarily enable more sets as needed.
|
||||
->withSets([
|
||||
// Rector sets
|
||||
|
||||
// LevelSetList::UP_TO_PHP_53,
|
||||
// LevelSetList::UP_TO_PHP_54,
|
||||
// LevelSetList::UP_TO_PHP_55,
|
||||
// LevelSetList::UP_TO_PHP_56,
|
||||
// LevelSetList::UP_TO_PHP_70,
|
||||
// LevelSetList::UP_TO_PHP_71,
|
||||
// LevelSetList::UP_TO_PHP_72,
|
||||
// LevelSetList::UP_TO_PHP_73,
|
||||
// LevelSetList::UP_TO_PHP_74,
|
||||
// LevelSetList::UP_TO_PHP_80,
|
||||
// LevelSetList::UP_TO_PHP_81,
|
||||
// LevelSetList::UP_TO_PHP_82,
|
||||
// LevelSetList::UP_TO_PHP_83,
|
||||
|
||||
// SetList::CODE_QUALITY,
|
||||
// SetList::CODING_STYLE,
|
||||
// SetList::DEAD_CODE,
|
||||
// SetList::EARLY_RETURN,
|
||||
// SetList::INSTANCEOF,
|
||||
// SetList::NAMING,
|
||||
// SetList::PRIVATIZATION,
|
||||
// SetList::STRICT_BOOLEANS,
|
||||
// SetList::TYPE_DECLARATION,
|
||||
|
||||
// PHPUnit sets
|
||||
|
||||
// PHPUnitSetList::PHPUNIT80_DMS,
|
||||
// PHPUnitSetList::PHPUNIT_40,
|
||||
// PHPUnitSetList::PHPUNIT_50,
|
||||
// PHPUnitSetList::PHPUNIT_60,
|
||||
// PHPUnitSetList::PHPUNIT_70,
|
||||
// PHPUnitSetList::PHPUNIT_80,
|
||||
// PHPUnitSetList::PHPUNIT_90,
|
||||
// PHPUnitSetList::PHPUNIT_100,
|
||||
// PHPUnitSetList::PHPUNIT_CODE_QUALITY,
|
||||
|
||||
// TYPO3 Sets
|
||||
// https://github.com/sabbelasichon/typo3-rector/blob/main/src/Set/Typo3LevelSetList.php
|
||||
// https://github.com/sabbelasichon/typo3-rector/blob/main/src/Set/Typo3SetList.php
|
||||
|
||||
Typo3SetList::CODE_QUALITY,
|
||||
Typo3SetList::GENERAL,
|
||||
|
||||
Typo3LevelSetList::UP_TO_TYPO3_11,
|
||||
// Typo3LevelSetList::UP_TO_TYPO3_12,
|
||||
|
||||
// TYPO3TestingFrameworkSetList::TYPO3_TESTING_FRAMEWORK_7,
|
||||
])
|
||||
// To have a better analysis from PHPStan, we teach it here some more things
|
||||
->withPHPStanConfigs([
|
||||
Typo3Option::PHPSTAN_FOR_RECTOR_PATH,
|
||||
])
|
||||
->withRules([
|
||||
AddVoidReturnTypeWhereNoReturnRector::class,
|
||||
ConvertImplicitVariablesToExplicitGlobalsRector::class,
|
||||
])
|
||||
->withImportNames(true, true, false)
|
||||
->withConfiguredRule(ExtEmConfRector::class, [
|
||||
ExtEmConfRector::PHP_VERSION_CONSTRAINT => '7.4.0-8.3.99',
|
||||
ExtEmConfRector::TYPO3_VERSION_CONSTRAINT => '11.5.4-12.4.99',
|
||||
ExtEmConfRector::ADDITIONAL_VALUES_TO_BE_REMOVED => [],
|
||||
])
|
||||
->withSkip([
|
||||
]);
|
Loading…
Reference in a new issue