Releases
2.0.17
New Features π₯³
[Php85] Add ArrayFirstLastRector (#6900 )
Use active voice and add markdown style for code blocks (#6897 ), Thanks @simonschaufi !
[Php83] Add ReadOnlyAnonymousClassRector (#6916 )
[Php83] Add DynamicClassConstFetchRector (#6922 )
[Test] Add test for crash after reprint Stmt (#6924 )
[Command] Fix to make additionalAutoloader->autoloadPaths() works on both parallel and non-parallel proccess (#6927 )
[Alternative] Add EnumCaseToPascalCaseRector with use of DynamicSourceLocatorProvider (#6899 )
Bugfixes π
Directly use isNames() in rector rules (#6896 )
[StrContainsRector] also replace multibyte functions fro strpos and strstr (#6901 ), Thanks @JohJohan !
[DeadCode] IsClassMethodUsedAnalyzer needs to use Scope from Class_ level (#6910 )
[Php84] Skip with parentheses on class on NewMethodCallWithoutParenthesesRector (#6911 )
[CodeQuality] Skip Assign Op on ternary on SimplifyUselessVariableRector (#6913 )
Rectify to trigger latest build (#6914 )
[Php82] Handle implicit public readonly on ReadOnlyClassRector (#6919 )
Use dynamic check on last on ClassConstManipulator (#6921 )
bump (rectorphp/rector-src@695228f )
[Naming] Re-use repetitive DateTimeInterface object type check on services into PropertyNaming service (#6926 )
[AutoImport] Skip conflict aliased with docblock on auto import (#6929 )
[AutoImport] Skip reserved class names on auto import (#6933 )
[AutoImport] Fix empty uses on auto import + rename class on no namespaced file (#6935 )
[Php83] Fix invalid constant use READONLY_CLASS -> READONLY_ANONYMOUS_CLASS on ReadOnlyAnonymousClassRector (#6936 )
fix: RenameMethodRector does not rename trait methods (#6928 ), Thanks @LordSimal !
[CodeQuality] Skip late static binding use on CompleteDynamicPropertiesRector (#6938 )
[dx] report false skipped rules in more nicer way (#6941 )
[PHP84] Deprecated annotation to Deprecated attribute (#6923 ), Thanks @peterfox !
[Renaming] Allow rename method in trait itself on RenameMethodRector (#6942 )
[Renaming] Handle rename caller on trait on RenameMethodRector (#6944 )
[TypeDeclaration] Fix crash on already return static on AddReturnTypeDeclarationRector (#6940 )
[TypeDeclaration] Handle crash on return different over static on AddReturnTypeDeclarationRector-a (#6943 )
Removed π
Use active voice and remove note about PHPUnit (#6907 ), Thanks @simonschaufi !
[DeadCode] Skip used by Array callable on RemoveEmptyClassMethodRector (#6908 )
[DeadCode] Use IsClassMethodUsedAnalyzer service on RemoveEmptyClassMethodRector (#6909 )
[DeadCode] Handle called by static call on RemoveUnusedPrivateMethodParameterRector (#6912 )
[DeadCode] Skip used by $this on RemoveUnusedPrivateClassConstantRector (#6920 )
rectorphp/rector-symfony π΅
Update to use ramsey/composer-install@v2 (#782 )
[Symfony 7.3] Make __invoke() public in InvokableCommandInputAttributeRector (#779 ), Thanks @mickverm
Fix ClassConstFetch use on InvokableCommandInputAttributeRector (#778 )
[Symfony 7.3] handle name from constant on InvokableCommandInputAttributeRector (#777 )
[Symfony 7.3] Remove Argument argument: mode on InvokableCommandInputAttributeRector (#776 ), Thanks @mickverm
[Symfony 7.3] Make nullable argument param type on Optional InputArgument::OPTIONAL on InvokableCommandInputAttributeRector (#775 )
[Symfony 7.3] Keep $output param on InvokableCommandInputAttributeRector (#774 )
[Symfony 7.3] Add Argument arguments: name, mode, description on InvokableCommandInputAttributeRector (#773 )
[Symfony 7.3] Handle with #[\Override] on InvokableCommandInputAttributeRector (#772 )
rectorphp/rector-doctrine π
skip default param array, to respect colleciton type (#408 )
Add array<> support to /NarrowParamUnionToCollectionRector (#407 )
[typed-collections] Add CollectionSetterParamNativeTypeRector (#406 )
only remove new array collection to a new property (#405 )
Update to use ramsey/composer-install@v2 (#404 )
[typed-collections] Add embed many support InitializeCollectionInConstructorRector (#403 )
Add static call support to setter array collection wrap (#402 )
[typed-collections] Decouple RemoveIsArrayOnCollectionRector (#401 )
[typed-collections] Allow new array in tests for RemoveNewArrayCollectionOutsideConstructorRector (#400 )
[typed-collections] Allow new array in tests for RemoveNewArrayCollectionOutsideConstructorRector (#399 )
[typed-collections] Add nullable support to array wrapper rule (#398 )
[TypedCollections] Use directly param->type->type assign on RemoveNullFromNullableCollectionTypeRector (#397 )
[typed-collections] Add RemoveNullFromNullableCollectionTypeRector rule (#396 )
Typed collections fixes (#395 )
[typed-collections] remove DefaultNewArrayCollectionRector as duplicate of InitializeCollectionInConstructorRector (#394 )
Fix scoper Doctrine class in use statement prefixed with RectorPrefix (#393 )
[typed-collections] Add dozens of rules to handle doctrine collection types (#392 )
Rename ExplicitRelationCollectionRector to InitializeCollectionInConstructorRector (#391 )
[typed-collections] Make TypedPropertyFromToManyRelationTypeRector work only for native types, docblocks are handled in another rule (#390 )
[typed-collections] Decouple new namespace and move 4 rules there (#389 )
Directly use isName(s) and getName() on rector rules (#388 )
Add mapped superclass case to ToManyRelationPropertyTypeResolver (#387 )
Remove array on collection in TypedPropertyFromToManyRelationTypeRector (#386 )
Remove default null value in TypedPropertyFromToManyRelationTypeRector (#384 )
rectorphp/rector-phpunit π’
[code-quality] Add additional non-static methods to NonAssertNonStaticMethods (#497 ), Thanks @philiprabbett
[CodeQuality] Skip in static arrow function on PreferPHPUnitThisCallRector (#496 )
Update to use ramsey/composer-install@v2 (#495 )
Only remove @Covers when target exists (#494 )
PHPUnit 10/11 Only set attribute when target attribute class exists on CoversAnnotationWithValueToAttributeRector (#493 )
[AnnotationsToAttributes] Apply to class level on @uses on AnnotationWithValueToAttributeRector (#492 )
[PHPUnit 12] Add RemoveOverrideFinalConstructTestCaseRector (#491 )
[CodeQuality] Skip with if else condition result on AddInstanceofAssertForNullableInstanceRector (#489 )
You canβt perform that action at this time.