github rectorphp/rector 2.1.5
Released Rector 2.1.5

latest release: 2.1.6
one day ago

New Features 🥳

  • feat: add NarrowTooWideReturnTypeRector (#7150), Thanks @calebdw!
  • [Php85] Add ColonAfterSwitchCaseRector (#7157)
  • feat: add StaticToSelfStaticPropertyFetchOnFinalClassRector (#7161), Thanks @calebdw!
  • feat: Add AddReturnDocblockForScalarArrayFromAssignsRector (#7151), Thanks @imliam!
  • [TypeDeclaration] Register AddReturnDocblockForScalarArrayFromAssignsRector to type declaration set (#7166)
  • Refactor RemoveDuplicatedCaseInSwitchRector and adding test cases (#7175), Thanks @max-s-lab!
  • [Php85] Add ArrayKeyExistsNullToEmptyStringRector (#7183), Thanks @arshidkv12!
  • [Php85] Add fixture to skip integer key on ArrayKeyExistsNullToEmptyStringRector (#7189)
  • [Php85] Add ChrArgModuloRector (#7190), Thanks @arshidkv12!
  • [assert] Kick of experimental rule, AddAssertArrayFromClassMethodDocblockRector (#7206)
  • [php 8.3] Add json_validate rule. (#7213), Thanks @arshidkv12!
  • Add MbStrContainsRector (#7199), Thanks @arshidkv12!
  • [PHP 8.5] Rename constant FILTER_DEFAULT to FILTER_UNSAFE_RAW (#7209), Thanks @ddevsr!
  • [PHP 8.5] Convert @deprecated to #[\Deprecated] on constants (#7155), Thanks @DanielEScherzer!

Bugfixes 🐛

  • [TypeDeclaration] Skip integer index on string on AddArrowFunctionParamArrayWhereDimFetchRector (#7178)
  • [TypeDeclaration] Skip Valid type from return doc and typed param on AddMethodCallBasedStrictParamTypeRector (#7172)
  • [Renaming] Keep parentheses on RenameCastRector (#7153)
  • [CodeQuality] Skip next inside array_filter() on SimplifyEmptyArrayCheckRector (#7154)
  • Clean up ternary on ColonAfterSwitchCaseRector (#7158)
  • fix: convert static::* to self::* for all constant access in final classes (#7159), Thanks @calebdw!
  • fix: static to self static method call on final class (#7160), Thanks @calebdw!
  • fix multi-line error message format (#7164), Thanks @FeBe95!
  • [CodeQuality] Skip @Final doc with public property on ConvertStaticToSelfRector (#7168)
  • [CodeQuality] Skip @Final doc with public class constant on ConvertStaticToSelfRector (#7170)
  • Ensure native ReflectionClassConstant->isFinal() exists by check real php version (#7171)
  • Fix RemoveDuplicatedCaseInSwitchRector behavior (#7173), Thanks @max-s-lab!
  • replace PHP_EOL with \n when used with symfony console (#7174), Thanks @FeBe95!
  • [CodeQuality] Handle parentheses inner if with assign on CombineIfRector (#7179)
  • [DeadCode] Fix merge comments on RemoveAlwaysTrueIfConditionRector (#7181)
  • [Naming] Skip rename override method from /vendor/ on RenameParamToMatchTypeRector (#7182)
  • [Php84] Handle named key argument with flipped position on ArrayKeyExistsNullToEmptyStringRector (#7186)
  • skip constructor param hook on ReadOnlyPropertyRector (#7192), Thanks @tandev!
  • [Php84] Skip value extraction on ForeachToArray* rules (#7193)
  • [Scope] Handle Scope refreshing on Attribute on print string with NOWDOC (#7194)
  • [Transform] Fix example config on FuncCallToNewRector (#7196)
  • [Composer] Make InstalledPackageResolver::resolvedInstalledPackages nullable to verify cached package lists (#7210)
  • [AutoImport] Do not rename different namespaced function on auto import + RenameFunctionRector (#7214)
  • Rectify (#7216)
  • [DeadCode] Skip non-public __clone() method on RemoveEmptyClassMethodRector (#7187)

Removed and reprecated 💀

  • Throw Deprecatation on StaticToSelfStaticMethodCallOnFinalClassRector and ConvertStaticPrivateConstantToSelfRector (#7165)
  • [Php85] Remove calls to deprecated no-op functions (#7128), Thanks @mttsch!
  • [8.4][DeprecatedAnnotationToDeprecatedAttributeRector] Remove invalid example (#7202), Thanks @DanielEScherzer!
  • Remove removed "Rector\Symfony\Set\FOSRestSetList/JMSSetList/SensiolabsSetList" usage (#7204)



rectorphp/rector-symfony 🎵

  • restore SymfonyInternalSetList to allow relative paths to sets, use internally only (#837)
  • [code-quality] add filter_var() support to ParameterBagTypedGetMethodCallRector (#836)
  • [CodeQuality] Skip first class callable on ParameterBagTypedGetMethodCallRector (#835)
  • [code-quality] Add ParameterBagTypedGetMethodCallRector (#834)
  • [config] add symfony cache pool support to StringExtensionToConfigBuilderRector (#832)
  • [doctrine] add mapping type support to StringExtensionToConfigBuilderRector (#831)
  • [config] Add query/result cache doctrine support in StringExtensionToConfigBuilderRector (#830)
  • [config] Add monolog and dbal fixes to StringExtensionToConfigBuilderRector (#829)
  • [SYMFONY 7.4] replace function call routing (#828), Thanks @JohJohan

rectorphp/rector-phpunit 🟢

  • [code-quality] Add ScalarArgumentToExpectedParamTypeRector (#533)
  • [CodeQuality] Fix assertGreater/Less apply on AssertComparisonToSpecificMethodRector (#532)
  • [CodeQuality] Skip docblock based type on AddReturnTypeToDependedRector (#530)
  • Remove unused check return with expr as already covered on ReturnAnalyzer (#529)
  • [code-quality] Add AddReturnTypeToDependedRector (#528)
  • [code-quality] Add AddParamTypeFromDependsRector (#525)
  • Fix target method on dataProvider on DataProviderAnnotationToAttributeRector (#524)
  • [AnnotationToAttribute] Handle already in use on DataProviderAnnotationToAttributeRector (#523)
  • [CodeQuality] Skip already has return type on TypeWillReturnCallableArrowFunctionRector (#518)
  • Drop MatchAssertEqualsExpectedTypeRector (#517)
  • [CodeQuality] Handle crash on native "object" type on TypeWillReturnCallableArrowFunctionRector (#516)
  • [CodeQuality] Skip return createMock() on TypeWillReturnCallableArrowFunctionRector (#515)
  • [CodeQuality] Rename MatchAssertSameExpectedTypeRector to MatchAssertEqualsExpectedTypeRector to only apply on assertEquals (#514)
  • [code-quality] Add MatchAssertSameExpectedTypeRector (#510)
  • add GetMockBuilderGetMockToCreateMockRector to code quality set (#509)

rectorphp/rector-downgrade-php

  • [DowngradePhp83] Add DowngradeJsonValidateRector (#313)
  • [DowngradePhp81] Handle parent is void on DowngradeNeverTypeDeclarationRector (#311)
  • [DowngradePhp81] Skip check version_compare with if on DowngradeHashAlgorithmXxHashRector (part 3) (#309)
  • [DowngradePhp81] Skip check version_compare with ternary on DowngradeHashAlgorithmXxHashRector (part 2) (#308)
  • [DowngradePhp81] Skip check php version with ternary on DowngradeHashAlgorithmXxHashRector (part 1) (#307)
  • [DowngradePhp81] Add PHP_VERSION_ID < 80100 check on DowngradeSetAccessibleReflectionPropertyRector (#306)

Don't miss a new rector release

NewReleases is sending notifications on new releases.