rector.php gets the codeQuality set: declare(strict_types=1) in the 85 files where Rector finds no call relying on scalar type juggling (mostly TCA and configuration, models, the content feed API and the import command), "or die" as "|| die", instanceof instead of null checks for object types, early returns and self:: in final classes. Hotel::setRooms() goes instead of getting the property Rector wanted to declare: nothing calls it, and there is no rooms column any more. Checked locally: cache warmup, the ep:* commands load, frontend crawl (~1,900 URLs) and the backchannel APIs render the same as before. Co-Authored-By: Claude Opus 5.5 <[email protected]>
50 lines
2.1 KiB
PHP
50 lines
2.1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use Rector\Config\RectorConfig;
|
|
use Rector\Php84\Rector\Param\ExplicitNullableParamTypeRector;
|
|
use Rector\ValueObject\PhpVersion;
|
|
use Ssch\TYPO3Rector\CodeQuality\General\ConvertImplicitVariablesToExplicitGlobalsRector;
|
|
use Ssch\TYPO3Rector\CodeQuality\General\ExtEmConfRector;
|
|
use Ssch\TYPO3Rector\CodeQuality\General\RemoveTypo3VersionChecksRector;
|
|
use Ssch\TYPO3Rector\Configuration\Typo3Option;
|
|
use Ssch\TYPO3Rector\Set\Typo3LevelSetList;
|
|
use Ssch\TYPO3Rector\Set\Typo3SetList;
|
|
use Ssch\TYPO3Rector\TYPO313\v4\MigratePluginContentElementAndPluginSubtypesRector;
|
|
use Ssch\TYPO3Rector\TYPO313\v4\MigratePluginContentElementAndPluginSubtypesSwapArgsRector;
|
|
use Ssch\TYPO3Rector\TYPO313\v4\MigratePluginContentElementAndPluginSubtypesTCARector;
|
|
|
|
return RectorConfig::configure()
|
|
->withPaths([
|
|
__DIR__ . '/packages',
|
|
])
|
|
->withSkip([
|
|
__DIR__ . '/packages/*/Resources/Private/Assets/*',
|
|
// Plugins stay list_type plugins until the TYPO3 14 step, which migrates tt_content
|
|
MigratePluginContentElementAndPluginSubtypesRector::class,
|
|
MigratePluginContentElementAndPluginSubtypesSwapArgsRector::class,
|
|
MigratePluginContentElementAndPluginSubtypesTCARector::class,
|
|
])
|
|
->withPhpVersion(PhpVersion::PHP_85)
|
|
->withPhpSets(php85: true)
|
|
->withPreparedSets(deadCode: true, codeQuality: true)
|
|
->withSets([
|
|
Typo3SetList::GENERAL,
|
|
Typo3LevelSetList::UP_TO_TYPO3_13,
|
|
])
|
|
->withPHPStanConfigs([Typo3Option::PHPSTAN_FOR_RECTOR_PATH])
|
|
->withImportNames(true, true, false, true)
|
|
->withRules([
|
|
ConvertImplicitVariablesToExplicitGlobalsRector::class,
|
|
ExplicitNullableParamTypeRector::class,
|
|
])
|
|
->withConfiguredRule(ExtEmConfRector::class, [
|
|
ExtEmConfRector::PHP_VERSION_CONSTRAINT => '8.5.0-8.5.99',
|
|
ExtEmConfRector::TYPO3_VERSION_CONSTRAINT => '13.4.0-13.4.99',
|
|
ExtEmConfRector::ADDITIONAL_VALUES_TO_BE_REMOVED => [],
|
|
])
|
|
->withConfiguredRule(RemoveTypo3VersionChecksRector::class, [
|
|
RemoveTypo3VersionChecksRector::TARGET_VERSION => 13,
|
|
]);
|