rector.php gets the PHP sets up to 8.5. Mostly constructor promotion with readonly properties, typed class constants, ??=, arrow functions, str_contains/str_starts_with, catch without unused variables, array_any and #[\Override] on overridden properties; array_key_exists() keys are cast to string (null keys are deprecated in PHP 8.5). Long promoted constructor signatures are wrapped one parameter per line. Checked locally: a crawl of ~1,900 frontend URLs over all sites and the backchannel APIs (/api/hotel, /api/product, content feed manifest and records of every type) render the same as before. Co-Authored-By: Claude Opus 5.5 <[email protected]>
49 lines
2.0 KiB
PHP
49 lines
2.0 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)
|
|
->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,
|
|
]);
|