Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: sabbelasichon/typo3-rector
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v2.12.2
Choose a base ref
...
head repository: sabbelasichon/typo3-rector
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v3.0.0
Choose a head ref
  • 9 commits
  • 170 files changed
  • 2 contributors

Commits on Dec 13, 2024

  1. [TASK] Upgrade to Rector 2.0 with PHPStan 2 and PHPParser 5

    samsonasik authored and simonschaufi committed Dec 13, 2024

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    8d7beed View commit details

Commits on Dec 14, 2024

  1. [TASK] Add DocumentedRuleInterface to generate documentation

    simonschaufi committed Dec 14, 2024
    Copy the full SHA
    d85fb49 View commit details
  2. [TASK] Remove empty lines and fix code style

    simonschaufi committed Dec 14, 2024
    Copy the full SHA
    c2ee1a7 View commit details
  3. [DOCS] Generate documentation

    Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    simonschaufi authored and github-actions[bot] committed Dec 14, 2024
    Copy the full SHA
    a248edb View commit details
  4. [TASK] Indent code sample correctly

    simonschaufi committed Dec 14, 2024
    Copy the full SHA
    c0cb95d View commit details
  5. [DOCS] Generate documentation

    Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    simonschaufi authored and github-actions[bot] committed Dec 14, 2024
    Copy the full SHA
    2685e4d View commit details
  6. [TASK] Adjust rector.php template for TYPO3 13

    simonschaufi committed Dec 14, 2024
    Copy the full SHA
    5a3c89b View commit details
  7. [TASK] Update README

    simonschaufi committed Dec 14, 2024
    Copy the full SHA
    b0eb49f View commit details
  8. [RELEASE] Release TYPO3 Rector 3.0.0

    simonschaufi committed Dec 14, 2024
    Copy the full SHA
    e6acff0 View commit details
Showing with 561 additions and 365 deletions.
  1. +7 −7 README.md
  2. +1 −1 bin/typo3-init.php
  3. +5 −5 composer.json
  4. +2 −2 docs/all_rectors_overview.md
  5. +2 −2 docs/contribution.md
  6. +23 −4 phpstan.neon
  7. +6 −9 rules/CodeQuality/General/AddErrorCodeToExceptionRector.php
  8. +2 −1 rules/CodeQuality/General/ConvertImplicitVariablesToExplicitGlobalsRector.php
  9. +6 −5 rules/CodeQuality/General/ExtEmConfRector.php
  10. +4 −2 rules/CodeQuality/General/InjectMethodToConstructorInjectionRector.php
  11. +2 −1 rules/CodeQuality/General/MethodGetInstanceToMakeInstanceCallRector.php
  12. +4 −3 rules/CodeQuality/General/MoveExtensionManagementUtilityAddStaticFileIntoTCAOverridesRector.php
  13. +4 −3 rules/CodeQuality/General/MoveExtensionManagementUtilityAddToAllTCAtypesIntoTCAOverridesRector.php
  14. +4 −3 rules/CodeQuality/General/MoveExtensionUtilityRegisterPluginIntoTCAOverridesRector.php
  15. +2 −1 rules/CodeQuality/General/RenameClassMapAliasRector.php
  16. +2 −1 rules/CodeQuality/General/UseExtensionKeyInLocalizationUtilityRector.php
  17. +2 −1 rules/General/Renaming/ConstantsToBackedEnumValueRector.php
  18. +2 −1 rules/General/Renaming/RenameAttributeRector.php
  19. +2 −1 rules/TYPO310/v0/BackendUtilityGetViewDomainToPageRouterRector.php
  20. +2 −5 rules/TYPO310/v0/ChangeDefaultCachingFrameworkNamesRector.php
  21. +2 −1 rules/TYPO310/v0/ConfigurationManagerAddControllerConfigurationMethodRector.php
  22. +2 −1 rules/TYPO310/v0/ForceTemplateParsingInTsfeAndTemplateServiceRector.php
  23. +2 −1 rules/TYPO310/v0/RefactorIdnaEncodeMethodToNativeFunctionRector.php
  24. +3 −2 rules/TYPO310/v0/RemoveFormatConstantsEmailFinisherRector.php
  25. +2 −1 rules/TYPO310/v0/RemovePropertyExtensionNameRector.php
  26. +2 −1 rules/TYPO310/v0/RemoveSeliconFieldPathRector.php
  27. +2 −1 rules/TYPO310/v0/RemoveShowRemovedLocalizationRecordsRector.php
  28. +2 −1 rules/TYPO310/v0/RemoveTcaOptionSetToDefaultOnCopyRector.php
  29. +4 −2 rules/TYPO310/v0/SetSystemLocaleFromSiteLanguageRector.php
  30. +2 −1 rules/TYPO310/v0/SwiftMailerBasedMailMessageToMailerBasedMessageRector.php
  31. +2 −1 rules/TYPO310/v0/UseConstantsFromTYPO3DatabaseConnection.php
  32. +6 −5 rules/TYPO310/v0/UseControllerClassesInExtbasePluginsAndModulesRector.php
  33. +2 −1 rules/TYPO310/v0/UseMetaDataAspectRector.php
  34. +2 −1 rules/TYPO310/v0/UseNativePhpHex2binMethodRector.php
  35. +2 −1 rules/TYPO310/v0/UseTwoLetterIsoCodeFromSiteLanguageRector.php
  36. +2 −1 rules/TYPO310/v1/BackendUtilityEditOnClickRector.php
  37. +2 −1 rules/TYPO310/v1/RefactorCHashArrayOfTSFERector.php
  38. +2 −1 rules/TYPO310/v1/RefactorInternalPropertiesOfTSFERector.php
  39. +22 −16 rules/TYPO310/v1/RegisterPluginWithVendorNameRector.php
  40. +2 −1 rules/TYPO310/v1/RemoveEnableMultiSelectFilterTextfieldRector.php
  41. +6 −5 rules/TYPO310/v1/SendNotifyEmailToMailApiRector.php
  42. +2 −1 rules/TYPO310/v2/ExcludeServiceKeysToArrayRector.php
  43. +2 −1 rules/TYPO310/v2/InjectEnvironmentServiceIfNeededInResponseRector.php
  44. +2 −1 rules/TYPO310/v2/MoveApplicationContextToEnvironmentApiRector.php
  45. +2 −1 rules/TYPO310/v2/UseActionControllerRector.php
  46. +2 −1 rules/TYPO310/v2/UseTypo3InformationForCopyRightNoticeRector.php
  47. +3 −2 rules/TYPO310/v3/RemoveExcludeOnTransOrigPointerFieldRector.php
  48. +2 −1 rules/TYPO310/v3/RemoveShowRecordFieldListInsideInterfaceSectionRector.php
  49. +2 −1 rules/TYPO310/v3/SubstituteResourceFactoryRector.php
  50. +2 −1 rules/TYPO310/v3/UseClassTypo3InformationRector.php
  51. +2 −1 rules/TYPO310/v3/UseClassTypo3VersionRector.php
  52. +4 −3 rules/TYPO310/v4/SubstituteGeneralUtilityMethodsWithNativePhpFunctionsRector.php
  53. +2 −1 rules/TYPO310/v4/UnifiedFileNameValidatorRector.php
  54. +2 −1 rules/TYPO310/v4/UseFileGetContentsForGetUrlRector.php
  55. +3 −4 rules/TYPO310/v4/UseIconsFromSubFolderInIconRegistryRector.php
  56. +2 −1 rules/TYPO311/v0/DateTimeAspectInsteadOfGlobalsExecTimeRector.php
  57. +10 −8 rules/TYPO311/v0/ExtbaseControllerActionsMustReturnResponseInterfaceRector.php
  58. +4 −3 rules/TYPO311/v0/ForwardResponseInsteadOfForwardMethodRector.php
  59. +2 −1 rules/TYPO311/v0/GetClickMenuOnIconTagParametersRector.php
  60. +2 −1 rules/TYPO311/v0/RemoveWorkspacePlaceholderShadowColumnsConfigurationRector.php
  61. +2 −1 rules/TYPO311/v0/ReplaceInjectAnnotationWithMethodRector.php
  62. +2 −1 rules/TYPO311/v0/SubstituteConstantsModeAndRequestTypeRector.php
  63. +2 −1 rules/TYPO311/v0/UniqueListFromStringUtilityRector.php
  64. +3 −2 rules/TYPO311/v2/MigrateFrameModuleToSvgTreeRector.php
  65. +2 −1 rules/TYPO311/v2/SubstituteEnvironmentServiceWithApplicationTypeRector.php
  66. +6 −6 rules/TYPO311/v3/MigrateHttpUtilityRedirectRector.php
  67. +3 −2 rules/TYPO311/v3/MigrateLanguageFieldToTcaTypeLanguageRector.php
  68. +3 −2 rules/TYPO311/v3/MigrateSpecialLanguagesToTcaTypeLanguageRector.php
  69. +2 −1 rules/TYPO311/v3/SubstituteExtbaseRequestGetBaseUriRector.php
  70. +2 −1 rules/TYPO311/v3/SubstituteMethodRmFromListOfGeneralUtilityRector.php
  71. +2 −2 rules/TYPO311/v3/SwitchBehaviorOfArrayUtilityMethodsRector.php
  72. +2 −1 rules/TYPO311/v3/UseNormalizedParamsToGetRequestUrlRector.php
  73. +2 −1 rules/TYPO311/v4/AddSetConfigurationMethodToExceptionHandlerRector.php
  74. +3 −2 rules/TYPO311/v4/MigrateFileFolderConfigurationRector.php
  75. +3 −3 rules/TYPO311/v4/MigrateRootUidToStartingPointsRector.php
  76. +2 −1 rules/TYPO311/v4/ProvideCObjViaMethodRector.php
  77. +2 −1 rules/TYPO311/v4/UseNativeFunctionInsteadOfGeneralUtilityShortMd5Rector.php
  78. +2 −2 rules/TYPO311/v5/FlexFormToolsArrayValueByPathRector.php
  79. +2 −1 rules/TYPO311/v5/HandleCObjRendererATagParamsMethodRector.php
  80. +2 −1 rules/TYPO311/v5/RemoveDefaultInternalTypeDBRector.php
  81. +4 −2 rules/TYPO311/v5/RemoveTypeHintViewInterfaceRector.php
  82. +2 −1 rules/TYPO311/v5/ReplaceTSFEATagParamsCallOnGlobalsRector.php
  83. +5 −4 rules/TYPO311/v5/SimplifyCheckboxItemsTCARector.php
  84. +7 −5 rules/TYPO311/v5/SubstituteBackendTemplateViewWithModuleTemplateRector.php
  85. +5 −4 rules/TYPO311/v5/SubstituteGetIconFactoryAndGetPageRendererFromModuleTemplateRector.php
  86. +1 −1 rules/TYPO312/AnnotationToAttribute/CascadeAttributeDecorator.php
  87. +1 −1 rules/TYPO312/AnnotationToAttribute/IgnoreValidationAttributeDecorator.php
  88. +1 −1 rules/TYPO312/AnnotationToAttribute/ValidateAttributeDecorator.php
  89. +2 −1 rules/TYPO312/v0/AddMethodToWidgetInterfaceClassesRector.php
  90. +8 −6 rules/TYPO312/v0/ChangeExtbaseValidatorsRector.php
  91. +3 −3 rules/TYPO312/v0/ExtbaseActionsWithRedirectMustReturnResponseInterfaceRector.php
  92. +2 −1 rules/TYPO312/v0/ExtbaseAnnotationToAttributeRector.php
  93. +9 −6 rules/TYPO312/v0/ImplementSiteLanguageAwareInterfaceRector.php
  94. +4 −3 rules/TYPO312/v0/MigrateBackendModuleRegistrationRector.php
  95. +3 −2 rules/TYPO312/v0/MigrateColsToSizeForTcaTypeNoneRector.php
  96. +2 −1 rules/TYPO312/v0/MigrateContentObjectRendererGetTypoLinkUrlRector.php
  97. +2 −1 rules/TYPO312/v0/MigrateContentObjectRendererLastTypoLinkPropertiesRector.php
  98. +3 −2 rules/TYPO312/v0/MigrateEvalIntAndDouble2ToTypeNumberRector.php
  99. +2 −1 rules/TYPO312/v0/MigrateFetchAllToFetchAllAssociativeRector.php
  100. +2 −1 rules/TYPO312/v0/MigrateFetchColumnToFetchOneRector.php
  101. +2 −1 rules/TYPO312/v0/MigrateFetchToFetchAssociativeRector.php
  102. +3 −2 rules/TYPO312/v0/MigrateFileFieldTCAConfigToTCATypeFileRector.php
  103. +6 −5 rules/TYPO312/v0/MigrateInputDateTimeRector.php
  104. +3 −2 rules/TYPO312/v0/MigrateInternalTypeFolderToTypeFolderRector.php
  105. +3 −2 rules/TYPO312/v0/MigrateNullFlagRector.php
  106. +3 −2 rules/TYPO312/v0/MigratePasswordAndSaltedPasswordToPasswordTypeRector.php
  107. +2 −1 rules/TYPO312/v0/MigrateQueryBuilderExecuteRector.php
  108. +3 −2 rules/TYPO312/v0/MigrateRenderTypeColorpickerToTypeColorRector.php
  109. +3 −2 rules/TYPO312/v0/MigrateRenderTypeInputLinkToTypeLinkRector.php
  110. +3 −2 rules/TYPO312/v0/MigrateRequiredFlagRector.php
  111. +3 −2 rules/TYPO312/v0/MigrateToEmailTypeRector.php
  112. +4 −3 rules/TYPO312/v0/MoveAllowTableOnStandardPagesToTCAConfigurationRector.php
  113. +3 −2 rules/TYPO312/v0/RemoveCruserIdRector.php
  114. +2 −1 rules/TYPO312/v0/RemoveMailerAdapterInterfaceRector.php
  115. +3 −2 rules/TYPO312/v0/RemoveObsoleteAppearanceConfigRector.php
  116. +2 −1 rules/TYPO312/v0/RemoveRelativeToCurrentScriptArgumentsRector.php
  117. +3 −2 rules/TYPO312/v0/RemoveTCAInterfaceAlwaysDescriptionRector.php
  118. +3 −2 rules/TYPO312/v0/RemoveTSFEConvOutputCharsetCallsRector.php
  119. +2 −1 rules/TYPO312/v0/RemoveTSFEMetaCharSetCallsRector.php
  120. +3 −2 rules/TYPO312/v0/RemoveTableLocalPropertyRector.php
  121. +4 −3 rules/TYPO312/v0/RemoveUpdateRootlineDataRector.php
  122. +2 −1 rules/TYPO312/v0/ReplaceContentObjectRendererGetMailToWithEmailLinkBuilderRector.php
  123. +2 −1 rules/TYPO312/v0/ReplaceExpressionBuilderMethodsRector.php
  124. +2 −1 rules/TYPO312/v0/ReplacePageRepoOverlayFunctionRector.php
  125. +2 −1 rules/TYPO312/v0/ReplaceTSFECheckEnableFieldsRector.php
  126. +14 −13 rules/TYPO312/v0/ReplaceTSFEWithContextMethodsRector.php
  127. +2 −1 rules/TYPO312/v0/SubstituteCompositeExpressionAddMethodsRector.php
  128. +2 −1 rules/TYPO312/v0/UseCompositeExpressionStaticMethodsRector.php
  129. +2 −1 rules/TYPO312/v0/UseConfigArrayForTSFEPropertiesRector.php
  130. +2 −1 rules/TYPO312/v0/UsePageDoktypeRegistryRector.php
  131. +6 −4 rules/TYPO312/v0/UseServerRequestInsteadOfGeneralUtilityPostRector.php
  132. +6 −4 rules/TYPO312/v1/TemplateServiceToServerRequestFrontendTypoScriptAttributeRector.php
  133. +6 −3 rules/TYPO312/v2/MigrateGeneralUtilityGPMergedRector.php
  134. +6 −4 rules/TYPO312/v3/MigrateGeneralUtilityGPRector.php
  135. +3 −2 rules/TYPO312/v3/MigrateItemsIndexedKeysToAssociativeRector.php
  136. +8 −5 rules/TYPO312/v3/MigrateMagicRepositoryMethodsRector.php
  137. +2 −1 rules/TYPO312/v4/CommandConfigurationToAttributeRector.php
  138. +2 −1 rules/TYPO312/v4/MigrateConfigurationManagerGetContentObjectRector.php
  139. +2 −1 rules/TYPO312/v4/MigrateRecordTooltipMethodToRecordIconAltTextMethodRector.php
  140. +2 −1 rules/TYPO312/v4/MigrateRequestArgumentFromMethodStartRector.php
  141. +2 −1 rules/TYPO312/v4/MigrateTypoScriptFrontendControllerTypeRector.php
  142. +6 −4 rules/TYPO312/v4/UseServerRequestInsteadOfGeneralUtilityGetRector.php
  143. +6 −4 rules/TYPO313/v0/AddMethodGetAllPageNumbersToPaginationInterfaceRector.php
  144. +2 −1 rules/TYPO313/v0/ChangeSignatureForLastInsertIdRector.php
  145. +2 −1 rules/TYPO313/v0/ChangeSignatureOfConnectionQuoteRector.php
  146. +2 −1 rules/TYPO313/v0/EventListenerConfigurationToAttributeRector.php
  147. +2 −1 rules/TYPO313/v0/IntroduceCapabilitiesBitSetRector.php
  148. +4 −3 rules/TYPO313/v0/MigrateAddPageTSConfigToPageTsConfigFileRector.php
  149. +4 −3 rules/TYPO313/v0/MigrateAddUserTSConfigToUserTsConfigFileRector.php
  150. +2 −1 rules/TYPO313/v0/MigrateExpressionBuilderTrimMethodSecondParameterRector.php
  151. +2 −1 rules/TYPO313/v0/MigrateExtbaseHashServiceToUseCoreHashServiceRector.php
  152. +2 −1 rules/TYPO313/v0/RemoveMmHasUidFieldRector.php
  153. +2 −1 rules/TYPO313/v0/StrictTypesPersistenceManagerRector.php
  154. +6 −4 rules/TYPO313/v0/SubstituteItemFormElIDRector.php
  155. +2 −1 rules/TYPO313/v0/UseStrictTypesInExtbaseAbstractDomainObjectRector.php
  156. +2 −1 rules/TYPO313/v0/UseStrictTypesInExtbaseActionControllerRector.php
  157. +2 −1 rules/TYPO313/v1/MigrateGeneralUtilityHmacToHashServiceHmacRector.php
  158. +8 −6 rules/TYPO313/v3/MigrateViewHelperRenderStaticRector.php
  159. +2 −1 rules/TYPO313/v4/MigratePluginContentElementAndPluginSubtypesRector.php
  160. +2 −1 rules/TYPO313/v4/MigratePluginContentElementAndPluginSubtypesSwapArgsRector.php
  161. +2 −1 rules/TYPO313/v4/MigratePluginContentElementAndPluginSubtypesTCARector.php
  162. +4 −3 rules/TYPO313/v4/RemoveTcaSubTypesExcludeListTCARector.php
  163. +6 −5 rules/TypeDeclaration/Property/AddPropertyTypeDeclarationWithDefaultNullRector.php
  164. +1 −1 src/Rector/AbstractTcaRector.php
  165. +4 −6 templates/rector.php.dist
  166. +2 −1 utils/generator/templates/rules/TYPO3__Major__/__MinorPrefixed__/__Name__.php
  167. +11 −2 utils/phpstan/src/Rules/AddChangelogDocBlockForRectorClassRule.php
  168. +1 −1 utils/phpstan/src/Type/ContextGetAspectDynamicReturnTypeExtension.php
  169. +3 −0 utils/phpstan/tests/Rules/AddChangelogDocBlockForRectorClass/Fixture/MissingChangelog.php
  170. +3 −0 utils/phpstan/tests/Rules/AddChangelogDocBlockForRectorClass/Fixture/SkipWithChangelog.php
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -13,7 +13,7 @@ It extends the [Rector](https://github.com/rectorphp/rector) project, which aims

> [!WARNING]
> :heavy_exclamation_mark: Never run this tool on production! Always run it on development environment where code is under version control (e.g. git).
> Review and test changes before releasing to production. Code migrations could potentionally break your website!
> Review and test changes before releasing to production. Code migrations could potentially break your website!
| | URL |
|--------------------|--------------------------------------------------------------|
@@ -55,9 +55,9 @@ vendor/bin/rector process

## Version matrix

| | v1 | v2 |
| | v1 | v2, v3 |
|--------------------|---------------------------------------|----------------|
| **typo3 versions** | 7 - 12 (not all rules) | 10 - 13 |
| **TYPO3 versions** | 7 - 12 (not all rules) | 10 - 13 |
| **file support** | all files (typoscript, flexform, ...) | only PHP files |

## Contributing
@@ -77,13 +77,13 @@ or feel free to open an issue or start a discussion on GitHub.

## Credits

Many thanks to [Tomas Votruba](https://tomasvotruba.com) for maintaining Rector.
Many thanks to [Tomas Votruba](https://tomasvotruba.com) and [Abdul Malik Ikhsan](https://github.com/samsonasik) for maintaining Rector.
Many thanks to [All Contributors](https://github.com/sabbelasichon/typo3-rector/graphs/contributors).

Follow us on X:
- [TYPO3 Rector](https://twitter.com/TYPO3Rector)
- [Sebastian](https://twitter.com/schreiberten)
- [Henrik](https://twitter.com/he_coli)
- [TYPO3 Rector](https://x.com/TYPO3Rector)
- [Sebastian](https://x.com/schreiberten)
- [Henrik](https://x.com/he_coli)

## License

2 changes: 1 addition & 1 deletion bin/typo3-init.php
Original file line number Diff line number Diff line change
@@ -29,7 +29,7 @@

(new SingleCommandApplication())
->setName('Initialize TYPO3-Rector configuration')
->setVersion('2.12.0')
->setVersion('3.0.0')
->setDescription('Initializes a bare configuration to start with your TYPO3 upgrade')
->setCode(static function (InputInterface $input, OutputInterface $output): int {
$projectDirectory = getcwd();
10 changes: 5 additions & 5 deletions composer.json
Original file line number Diff line number Diff line change
@@ -38,9 +38,9 @@
"league/flysystem": "^2.0 || ^3.0",
"league/flysystem-memory": "^2.0 || ^3.0",
"nette/utils": "^3.2.10 || ^4.0.4",
"nikic/php-parser": "^4.18.0",
"phpstan/phpstan": "^1.10.56",
"rector/rector": "^1.1.0",
"nikic/php-parser": "^5.3.1",
"phpstan/phpstan": "^2.0.3",
"rector/rector": "^2.0.0",
"symfony/console": "^5.4 || ^6.4 || ^7.0",
"symfony/filesystem": "^5.4 || ^6.4 || ^7.0",
"symfony/finder": "^5.4 || ^6.4 || ^7.0",
@@ -53,8 +53,8 @@
"ergebnis/composer-normalize": "^2.42.0",
"php-parallel-lint/php-parallel-lint": "^1.3.2",
"phpstan/extension-installer": "^1.3.1",
"phpstan/phpstan-deprecation-rules": "^1.1.4",
"phpstan/phpstan-phpunit": "^1.3.16",
"phpstan/phpstan-deprecation-rules": "^2.0.1",
"phpstan/phpstan-phpunit": "^2.0.1",
"phpunit/phpunit": "^9.6.17 || ^10.0",
"symfony/config": "^5.0 || ^6.0 || ^7.0",
"symfony/dependency-injection": "^5.4.36 || ^6.4.2 || ^7.0.2",
4 changes: 2 additions & 2 deletions docs/all_rectors_overview.md
Original file line number Diff line number Diff line change
@@ -481,12 +481,12 @@ Remove vendor name from registerPlugin call
- class: [`Ssch\TYPO3Rector\TYPO310\v1\RegisterPluginWithVendorNameRector`](../rules/TYPO310/v1/RegisterPluginWithVendorNameRector.php)

```diff
TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
- 'TYPO3.CMS.Form',
+ 'Form',
'Formframework',
'Form',
'content-form',
'content-form'
);
```

4 changes: 2 additions & 2 deletions docs/contribution.md
Original file line number Diff line number Diff line change
@@ -68,7 +68,7 @@ In this example the methods `GeneralUtility::strtoupper(...)` and `GeneralUtilit
- after that, the actual function call is checked for being one of the functions to migrate

```php
final class GeneralUtilityToUpperAndLowerRector extends AbstractRector
final class GeneralUtilityToUpperAndLowerRector extends AbstractRector implements DocumentedRuleInterface
{
/**
* @return array<class-string<Node>>
@@ -107,7 +107,7 @@ In this case you need to listen to an `Expression`.
Do a full text search for `[Expression::class]` to find existing rules which can help you.

```php
final class MyRector extends AbstractRector
final class MyRector extends AbstractRector implements DocumentedRuleInterface
{
public function getNodeTypes(): array
{
27 changes: 23 additions & 4 deletions phpstan.neon
Original file line number Diff line number Diff line change
@@ -7,6 +7,8 @@ parameters:
editorUrl: 'phpstorm://open?file=%%file%%&line=%%line%%'
level: 8

treatPhpDocTypesAsCertain: false

paths:
- bin
- config
@@ -29,12 +31,9 @@ parameters:
# static reflection
- stubs

# see https://github.com/rectorphp/rector/issues/3490#issue-634342324
featureToggles:
disableRuntimeReflectionProvider: true

bootstrapFiles:
- tests/bootstrap-phpstan.php
- vendor/rector/rector/vendor/symplify/rule-doc-generator-contracts/src/Contract/DocumentedRuleInterface.php

inferPrivatePropertyTypeFromConstructor: true
reportUnmatchedIgnoredErrors: false
@@ -50,3 +49,23 @@ parameters:

- '#^Call to method needs\(\) on an unknown class Illuminate\\Contracts\\Container\\ContextualBindingBuilder.$#'
- '#^Parameter \#1 \$node \(PhpParser\\Node\\Stmt\\Return_\) of method Ssch\\TYPO3Rector\\TYPO310\\v3\\RemoveExcludeOnTransOrigPointerFieldRector::refactor\(\)#'

-
identifier: phpunit.dataProviderMethod

-
identifier: return.type

-
identifier: method.childReturnType

-
identifier: return.unusedType

-
identifier: assign.propertyType

-
identifier: argument.type

- '#Method .*::provideMinPhpVersion\(\) never returns#'
15 changes: 6 additions & 9 deletions rules/CodeQuality/General/AddErrorCodeToExceptionRector.php
Original file line number Diff line number Diff line change
@@ -6,18 +6,18 @@

use PhpParser\Node;
use PhpParser\Node\Expr\New_;
use PhpParser\Node\Expr\Throw_ as ThrowExpression;
use PhpParser\Node\Stmt\Throw_ as ThrowStatement;
use PhpParser\Node\Expr\Throw_;
use Rector\Rector\AbstractRector;
use Rector\Testing\PHPUnit\StaticPHPUnitEnvironment;
use Ssch\TYPO3Rector\Contract\NoChangelogRequiredInterface;
use Symplify\RuleDocGenerator\Contract\DocumentedRuleInterface;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;

/**
* @see \Ssch\TYPO3Rector\Tests\Rector\CodeQuality\General\AddErrorCodeToExceptionRector\AddErrorCodeToExceptionRectorTest
*/
final class AddErrorCodeToExceptionRector extends AbstractRector implements NoChangelogRequiredInterface
final class AddErrorCodeToExceptionRector extends AbstractRector implements NoChangelogRequiredInterface, DocumentedRuleInterface
{
public function getRuleDefinition(): RuleDefinition
{
@@ -37,11 +37,11 @@ public function getRuleDefinition(): RuleDefinition
*/
public function getNodeTypes(): array
{
return [ThrowStatement::class, ThrowExpression::class];
return [Throw_::class];
}

/**
* @param ThrowStatement|ThrowExpression $node
* @param Throw_ $node
*/
public function refactor(Node $node): ?Node
{
@@ -63,10 +63,7 @@ public function refactor(Node $node): ?Node
return $node;
}

/**
* @param ThrowStatement|ThrowExpression $node
*/
private function shouldSkip($node): bool
private function shouldSkip(Throw_ $node): bool
{
if (! $node->expr instanceof New_) {
return true;
Original file line number Diff line number Diff line change
@@ -10,14 +10,15 @@
use Rector\Testing\PHPUnit\StaticPHPUnitEnvironment;
use Ssch\TYPO3Rector\Filesystem\FilesFinder;
use Ssch\TYPO3Rector\NodeFactory\Typo3GlobalsFactory;
use Symplify\RuleDocGenerator\Contract\DocumentedRuleInterface;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;

/**
* @changelog https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ExtensionArchitecture/BestPractises/ConfigurationFiles.html
* @see \Ssch\TYPO3Rector\Tests\Rector\CodeQuality\General\ConvertImplicitVariablesToExplicitGlobalsRector\ConvertImplicitVariablesToExplicitGlobalsRectorTest
*/
final class ConvertImplicitVariablesToExplicitGlobalsRector extends AbstractRector
final class ConvertImplicitVariablesToExplicitGlobalsRector extends AbstractRector implements DocumentedRuleInterface
{
/**
* @readonly
11 changes: 6 additions & 5 deletions rules/CodeQuality/General/ExtEmConfRector.php
Original file line number Diff line number Diff line change
@@ -5,23 +5,24 @@
namespace Ssch\TYPO3Rector\CodeQuality\General;

use PhpParser\Node;
use PhpParser\Node\ArrayItem;
use PhpParser\Node\Expr;
use PhpParser\Node\Expr\Array_;
use PhpParser\Node\Expr\ArrayDimFetch;
use PhpParser\Node\Expr\ArrayItem;
use PhpParser\Node\Expr\Assign;
use PhpParser\Node\Scalar\String_;
use Rector\Contract\Rector\ConfigurableRectorInterface;
use Rector\PhpParser\Node\Value\ValueResolver;
use Rector\Rector\AbstractRector;
use Symplify\RuleDocGenerator\Contract\DocumentedRuleInterface;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;

/**
* @changelog https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ExtensionArchitecture/FileStructure/ExtEmconf.html
* @see \Ssch\TYPO3Rector\Tests\Rector\CodeQuality\General\ExtEmConfRector\ExtEmConfRectorTest
*/
final class ExtEmConfRector extends AbstractRector implements ConfigurableRectorInterface
final class ExtEmConfRector extends AbstractRector implements ConfigurableRectorInterface, DocumentedRuleInterface
{
/**
* @var string
@@ -111,7 +112,7 @@ public function refactor(Node $node): ?Node
return null;
}

if ($node->expr->items === [] || $node->expr->items === null) {
if ($node->expr->items === []) {
return null;
}

@@ -142,7 +143,7 @@ public function refactor(Node $node): ?Node
continue;
}

if ($item->value->items === null) {
if ($item->value->items === []) {
continue;
}

@@ -160,7 +161,7 @@ public function refactor(Node $node): ?Node
continue;
}

if ($constraintItem->value->items === null) {
if ($constraintItem->value->items === []) {
continue;
}

Original file line number Diff line number Diff line change
@@ -4,6 +4,7 @@

namespace Ssch\TYPO3Rector\CodeQuality\General;

use PhpParser\Modifiers;
use PhpParser\Node;
use PhpParser\Node\Expr\Assign;
use PhpParser\Node\Expr\PropertyFetch;
@@ -17,14 +18,15 @@
use Rector\NodeManipulator\ClassDependencyManipulator;
use Rector\PostRector\ValueObject\PropertyMetadata;
use Rector\Rector\AbstractRector;
use Symplify\RuleDocGenerator\Contract\DocumentedRuleInterface;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;

/**
* @changelog https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/DependencyInjection/Index.html
* @see \Ssch\TYPO3Rector\Tests\Rector\CodeQuality\General\InjectMethodToConstructorInjectionRector\InjectMethodToConstructorInjectionRectorTest
*/
final class InjectMethodToConstructorInjectionRector extends AbstractRector
final class InjectMethodToConstructorInjectionRector extends AbstractRector implements DocumentedRuleInterface
{
/**
* @readonly
@@ -142,7 +144,7 @@ public function refactor(Node $node): ?Node

$this->classDependencyManipulator->addConstructorDependency(
$node,
new PropertyMetadata($paramName, new ObjectType((string) $param->type), Class_::MODIFIER_PROTECTED)
new PropertyMetadata($paramName, new ObjectType((string) $param->type), Modifiers::PROTECTED)
);
$this->removeNodeFromStatements($node, $injectMethod);
}
Original file line number Diff line number Diff line change
@@ -10,14 +10,15 @@
use Rector\Contract\Rector\ConfigurableRectorInterface;
use Rector\Rector\AbstractRector;
use Ssch\TYPO3Rector\Contract\NoChangelogRequiredInterface;
use Symplify\RuleDocGenerator\Contract\DocumentedRuleInterface;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
use Webmozart\Assert\Assert;

/**
* @see \Ssch\TYPO3Rector\Tests\Rector\CodeQuality\General\MethodGetInstanceToMakeInstanceCallRector\MethodGetInstanceToMakeInstanceCallRectorTest
*/
final class MethodGetInstanceToMakeInstanceCallRector extends AbstractRector implements ConfigurableRectorInterface, NoChangelogRequiredInterface
final class MethodGetInstanceToMakeInstanceCallRector extends AbstractRector implements ConfigurableRectorInterface, NoChangelogRequiredInterface, DocumentedRuleInterface
{
/**
* @var string
Original file line number Diff line number Diff line change
@@ -9,22 +9,23 @@
use PhpParser\Node\Expr\Variable;
use PhpParser\Node\Scalar\String_;
use PhpParser\Node\Stmt\Expression;
use PhpParser\NodeTraverser;
use PhpParser\NodeVisitor;
use PHPStan\Type\ObjectType;
use Rector\PhpParser\Printer\BetterStandardPrinter;
use Rector\Rector\AbstractRector;
use Ssch\TYPO3Rector\ComposerExtensionKeyResolver;
use Ssch\TYPO3Rector\Contract\FilesystemInterface;
use Ssch\TYPO3Rector\Filesystem\FilesFinder;
use Ssch\TYPO3Rector\Helper\ExtensionKeyResolverTrait;
use Symplify\RuleDocGenerator\Contract\DocumentedRuleInterface;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;

/**
* @changelog https://review.typo3.org/c/Packages/TYPO3.CMS/+/52437
* @see \Ssch\TYPO3Rector\Tests\Rector\CodeQuality\General\MoveExtensionManagementUtilityAddStaticFileIntoTCAOverridesRector\MoveExtensionManagementUtilityAddStaticFileIntoTCAOverridesRectorTest
*/
class MoveExtensionManagementUtilityAddStaticFileIntoTCAOverridesRector extends AbstractRector
class MoveExtensionManagementUtilityAddStaticFileIntoTCAOverridesRector extends AbstractRector implements DocumentedRuleInterface
{
use ExtensionKeyResolverTrait;

@@ -126,7 +127,7 @@ public function refactor(Node $node)
);
}

return NodeTraverser::REMOVE_NODE;
return NodeVisitor::REMOVE_NODE;
}

private function shouldSkip(StaticCall $staticMethodCall): bool
Original file line number Diff line number Diff line change
@@ -9,21 +9,22 @@
use PhpParser\Node\Expr\Variable;
use PhpParser\Node\Scalar\String_;
use PhpParser\Node\Stmt\Expression;
use PhpParser\NodeTraverser;
use PhpParser\NodeVisitor;
use PHPStan\Type\ObjectType;
use Rector\PhpParser\Node\Value\ValueResolver;
use Rector\PhpParser\Printer\BetterStandardPrinter;
use Rector\Rector\AbstractRector;
use Ssch\TYPO3Rector\Contract\FilesystemInterface;
use Ssch\TYPO3Rector\Filesystem\FilesFinder;
use Symplify\RuleDocGenerator\Contract\DocumentedRuleInterface;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;

/**
* @changelog https://review.typo3.org/c/Packages/TYPO3.CMS/+/52437
* @see \Ssch\TYPO3Rector\Tests\Rector\CodeQuality\General\MoveExtensionManagementUtilityAddToAllTCAtypesIntoTCAOverridesRector\MoveExtensionManagementUtilityAddToAllTCAtypesIntoTCAOverridesRectorTest
*/
class MoveExtensionManagementUtilityAddToAllTCAtypesIntoTCAOverridesRector extends AbstractRector
class MoveExtensionManagementUtilityAddToAllTCAtypesIntoTCAOverridesRector extends AbstractRector implements DocumentedRuleInterface
{
/**
* @readonly
@@ -131,7 +132,7 @@ public function refactor(Node $node)
);
}

return NodeTraverser::REMOVE_NODE;
return NodeVisitor::REMOVE_NODE;
}

private function shouldSkip(StaticCall $staticMethodCall): bool
Loading