Skip to content

Update dependency rector/rector to v2#83

Open
renovate[bot] wants to merge 1 commit intopreprodfrom
renovate/rector-rector-2.x
Open

Update dependency rector/rector to v2#83
renovate[bot] wants to merge 1 commit intopreprodfrom
renovate/rector-rector-2.x

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Sep 4, 2025

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
rector/rector (source) ^1.0^2.0 age adoption passing confidence

Release Notes

rectorphp/rector (rector/rector)

v2.3.5: Released Rector 2.3.5

Compare Source

New Features 🥳


Bugfixes 🐛

  • Fix ArrayItem scope filling on Foreach_ value (#​7858)
  • Fix use of deprecated Node\Expr\ArrayItem over Node\ArrayItem (#​7859)
  • make PropertyFetchFinder more generic (to be used in rector-phpunit) (#​7860)
  • Fix arrow function scope search in BetterNodeFinder (#​7861)

rectorphp/rector-symfony 🎵

  • Rename Annotation\Route attributes to Attribute\Route on Symfony 7.x (#​917), Thanks @​mickverm

rectorphp/rector-doctrine 🟠

  • [ODM 2.16] Rename 'Doctrine\ODM\MongoDB\Mapping\Annotations' namespace to 'Doctrine\ODM\MongoDB\Mapping\Attribute' (#​477), Thanks @​mickverm

rectorphp/rector-phpunit 🟢

  • [code-quality] Add NoSetupWithParentCallOverrideRector (#​617)
  • [code-quality] Add BareCreateMockAssignToDirectUseRector (#​611)
  • [code-quality] Add DirectInstanceOverMockArgRector (#​609)
  • [PHPUnit 12] Add CreateStubOverCreateMockArgRector (#​608)

v2.3.4: Released Rector 2.3.4

Compare Source

Bugfixes 🐛

  • Bump to PHPStan ^2.1.36 (#​7850)
  • [Php81] Exclude Doctrine ODM MongoDB 2.16 Document and EmbeddedDocument from ReadOnlyPropertyRector. (#​7848), Thanks @​mickverm!

v2.3.3: Released Rector 2.3.3

Compare Source

Bugfixes 🐛

v2.3.2: Released Rector 2.3.2

Compare Source

New Features 🥳

  • [dx] Rename DeprecatedAnnotationToDeprecatedAttributeRector for PHP 8.5 to explicit ConstAndTraitDeprecatedAttributeRector, add trait suport (#​7823)

Bugfixes 🐛

  • Bump to PHPStan 2.1.34 and fix compatible code (rectorphp/rector-src#7844)
  • [perf] optimize ParamTypeByMethodCallTypeRector for speed with early checks (#​7831)
  • make resolveClassReflection non-nullable as always passed a node (#​7833)
  • [Php74] Skip closure in attribute on ClosureToArrowFunctionRector (#​7834)
  • Manage named arguments when removing values (#​7835), Thanks @​carlos-granados!
  • bump to PHP 8.3 + update deps + allow it in CI (#​7838)
  • Support array_values in ArrayFirstLastRector (#​7830), Thanks @​Orest-Divintari!
  • [Php85] Skip as assigned var/op on ArrayFirstLastRector (#​7843)
  • Remove no longer needed tweak AlwaysRememberedExpr on Printer per PHPStan 2.1.34 (#​7770)

rectorphp/rector-phpunit 🟢

v2.3.1: Released Rector 2.3.1

Compare Source

New Features and Changes 🥳

  • [tdd] Add AddReturnDocblockForDimFetchArrayFromAssignsRector (#​7792)
  • [tdd] Add AddReturnDocblockFromMethodCallDocblockRector (#​7796)
  • [tdd] Add AddVarArrayDocblockFromDimFetchAssignRector (#​7801)
  • [DeadCode] Add RemoveDeadIfBlocksRector (#​7528), Thanks @​john-shaffer!
  • [dead-code] Add RemoveVoidDocblockFromMagicMethodRector (#​7822) - Thanks @​parijke!
  • [experiment] Remove leaveNode() method on AbstractRector and CallableNodeVisitor (#​7767)

Bugfixes 🐛

  • Skip Doctrine Connection calls in AddReturnDocblockFromMethodCallDocblockRector (#​7797)
  • add static all support to AddReturnDocblockFromMethodCallDocblockRector (#​7798)
  • add object support to DocblockReturnArrayFromDirectArrayInstanceRector (#​7795)
  • [TypeDeclarationDocblocks] Use FQCN return docblock for array of object types on AddReturnDocblockFromMethodCallDocblockRector (#​7800), Thanks @​guanguans!
  • [php 8.3] cover private abstract constants in AddTypeToConstRector (#​7804)
  • Add check for append in foreach items assignment (#​7815), Thanks @​solverat!
  • Static closure rule ignores arguments with $this binding (#​7721), Thanks @​peterfox!
  • fix: skip non-native methods (#​7747), Thanks @​calebdw!
  • [Php74] Fix indentation space on ClosureToArrowFunctionRector with comment inner closure (#​7779)
  • [DeadCode] Handle crash when parent does not has default param and child has (#​7782)
  • fix mixed[] override with empty array in DocblockReturnArrayFromDirectArrayInstanceRector (#​7793)
  • [ChangesReporting] Fix total changed result on JsonOutputFormatter (#​7807)
  • Manage named arguments when replacing a value (#​7784), Thanks @​carlos-granados!
  • [DeadCode] Register RemoveNextSameValueConditionRector in dead-code set (#​7790)
  • [DeadCode] Skip final and non-public __construct() on RemoveParentDelegatingConstructorRector (#​7806)
  • [DeadCode][Php80] Handle crash on mix ClassPropertyAssignToConstructorPromotionRector+RemoveParentDelegatingConstructorRector (#​7799)
  • [DeadCode] Skip with elseif/else on RemoveNextSameValueConditionRector (#​7809)
  • [DeadCode] Merge comment on RemoveNextSameValueConditionRector (#​7810)
  • skip marker attribute in RemoveEmptyClassMethodRector (#​7813)
  • [DeadCode] Skip private promoted property on RemoveParentDelegatingConstructorRector (#​7817)
  • Remove rector from rule definition title (#​7820), Thanks @​simonschaufi!
  • [experiment-next] Remove leaveNode() calls on AbstractImmutableNodeTraverser (#​7778)
  • [DeadCode] Handle multi vars on RemoveNonExistingVarAnnotationRector (#​7780)
  • [Php71] Try to handle no variants on RemoveExtraParametersRector (#​7803)

v2.3.0: Released Rector 2.3

Compare Source

New Features 🥳


Bugfixes 🐛

  • Manage named arguments in ArgumentAdderRector rule (#​7777), Thanks @​carlos-granados!
  • [compat] Add SymplifyQuoteEscapeRector deprecated rule for BC layer (#​7744)
  • [Php81] Skip on Param default on ArrayToFirstClassCallableRector (#​7749)
  • [CodeQuality] Handle ternary in identical left/right on UseIdenticalOverEqualWithSameTypeRector (#​7748)
  • fix: chained calls on static calls (#​7746), Thanks @​calebdw!
  • [code-quality] Extract standalone SortAttributeNamedArgsRector from SortNamedParamRector, to slightly different areas (#​7750)
  • [rename] Rename SortNamedParamRector to SortCallLikeNamedArgsRector to be more clear about the intent (#​7751)
  • [Php85] Skip under unset() on ArrayFirstLastRector (#​7752)
  • [Php81] ArrayToFirstClassCallableRector should not skip non-public methods from owning scope (#​7760), Thanks @​acoulton!
  • [fix] wrap ternary in parenthese on string casting, if only cond is casted (#​7745)
  • [internal] Fix inline replace block removal not removed on deep block for InlineIfToExplicitIfRector + ReplaceBlockToItsStmtsRector (#​7764)
  • [TypeDeclaration] Skip class not found on ObjectTypedPropertyFromJMSSerializerAttributeTypeRector (#​7774)
  • [Php85] Skip defined int or string on ArrayKeyExistsNullToEmptyStringRector (#​7758)

Removed 💀

  • [DeadCode] Skip trait on RemoveAlwaysTrueIfConditionRector (#​7759)
  • [internal] Remove duplicated enterNode() type check already handled in node traverser (#​7717)
  • [dx] warn about deprecated beforeTraverse() method once FileNode is ready (#​7768)
  • [DeadCode] Skip next assign expr has side effect inside try {} on RemoveDoubleAssignRector (#​7775)
  • [DeadCode] Skip with different default param value child vs parent on RemoveParentDelegatingConstructorRector (#​7776)

rectorphp/rector-symfony 🎵

  • bump (#​911)
  • [code-quality] Add ReturnDirectJsonResponseRector (#​910)
  • Fix scoped downgrade SymfonyClass (#​909)
  • cover is safe (#​908)
  • [twig] add explicit attribute name arg, to improve context (#​907)
  • [Symfony73] Fix named arg different position crash on InvokableCommandInputAttributeRector (#​905)
  • [CodeQuality] Skip UserInterface instance on ControllerMethodInjectionToConstructorRector (#​904)
  • create ClassMethod directly in InvokableCommandInputAttributeRector, to keep newline per attribute (#​903)
  • Remove InvokableCommandInputAttributeRector from set (#​901)
  • [Validator] use constants for Email (#​900), Thanks @​JohJohan

rectorphp/rector-doctrine 🟠


rectorphp/rector-phpunit 🟢

  • [AnnotationsToAttributes] Handle both annotation and attributes exists on DataProviderAnnotationToAttributeRector (#​603)
  • [fix] skip AddInstanceofAssertForNullableArgumentRector on assert call (#​602)
  • [code-quality] Add AddInstanceofAssertForNullableArgumentRector (#​601)
  • use FileNode in DeclareStrictTypesTestsRector (#​599)

v2.2.14: Released Rector 2.2.14

Compare Source

Bugfixes 🐛
  • [fix] warn early about deprecated skipped rules, as not neccessary to skip anymore + restore FirstClassCallableRector and mark as deprecated to keep BC (#​7742)

v2.2.13: Released Rector 2.2.13

Compare Source

Bugfixes 🐛
  • [fix] restore missing pInterpolatedStringPart(), cover with test (#​7741)

v2.2.12: Released Rector 2.2.12

Compare Source

Bugfixes 🐛

  • [cleanup] Make FirstClassCallableRector use attributes over node traverser hacks (#​7696)
  • [CodingStyle] Skip enum case on NewlineBetweenClassLikeStmtsRector (#​7698), Thanks @​parth391!
  • [fix] skip all-but standalone assign on SetTypeToCastRector (#​7699)
  • [fix] avoid changing generic interface in NarrowObjectReturnTypeRector, focus on objects as in definition (#​7700)
  • Remove direct NodeTravser::* where possible, use node visitor attribute key instead (#​7697)

Removed and Deprecated 💀

  • [dx] add stmts aware deprecation notice in `getNodeTypes()`` (#​7692)

rectorphp/rector-symfony 🎵

  • [Symfony 8.0] move RemoveEraseCredentialsRector from symfony 7.3 to symfony 8.0 (#​895), Thanks @​EJTJ3
  • [CodeQuality] Skip different service same name on ControllerMethodInjectionToConstructorRector (#​894)
  • [code-quality] Skip enum in ControllerMethodInjectionToConstructorRector (#​893)

v2.2.11: Released Rector 2.2.11

Compare Source

Bugfixes 🐛

  • [cleanup] Make FirstClassCallableRector use attributes over node traverser hacks (#​7696)
  • [CodingStyle] Skip enum case on NewlineBetweenClassLikeStmtsRector (#​7698), Thanks @​parth391!
  • [fix] skip all-but standalone assign on SetTypeToCastRector (#​7699)
  • [fix] avoid changing generic interface in NarrowObjectReturnTypeRector, focus on objects as in definition (#​7700)
  • [transform] tidy up array dim fetch to method call rector (#​7694)
  • Remove direct NodeTravser::* where possible, use node visitor attribute key instead (#​7697)

Removed and Deprecated 💀

  • [dx] add stmts aware deprecation notice in getNodeTypes() (#​7692)

rectorphp/rector-symfony

  • [Symfony 8.0] move RemoveEraseCredentialsRector from symfony 7.3 to symfony 8.0 (#​895), Thanks @​EJTJ3
  • [CodeQuality] Skip different service same name on ControllerMethodInjectionToConstructorRector (#​894)
  • [code-quality] Skip enum in ControllerMethodInjectionToConstructorRector (#​893)

v2.2.10: Released Rector 2.2.10

Compare Source

New Features and Improvements 🥳


Bugfixes 🐛

  • [PhpParser] Add Stmt\Block to NodeGroup::STMTS_AWARE (#​7689)
  • skip already dim fetch variable on OrdSingleByteRector (#​7681)
  • [Php85] Handle crash on no arg on OrdSingleByteRector (#​7682)
  • [Php70] Handle return ternary on IfIssetToCoalescingRector (#​7683)
  • [CodingStyle] Skip use trait on NewlineBetweenClassLikeStmtsRector (#​7685)
  • [CodingStyle] Handle use trait after property on NewlineBetweenClassLikeStmtsRector (#​7687)
  • [CodeQuality] Skip with HTML on ShortenElseIfRector (#​7686)
  • [Variables] Fetch list super global variable names from PHPStan Scope::SUPERGLOBAL_VARIABLES constant (#​7663)
  • Fix typo in rule definition message (#​7690), Thanks @​simonschaufi!

rectorphp/rector-symfony 🎵

  • [code-quality] Skip enum in ControllerMethodInjectionToConstructorRector (#​893)
  • [symfony 7.3] Add CommandDefaultNameAndDescriptionToAsCommandAttributeRector (#​892)
  • [symfony 7.x] update sets (#​890)
  • [CodeQuality] Skip parent method exists on ControllerMethodInjectionToConstructorRector (#​889)
  • skip params with attributes in ControllerMethodInjectionToConstructorRector (#​887)
  • [stmts-aware] Use NodeGroup::STMTS_AWARE over StmtsAwareInterface (#​886)

rectorphp/rector-phpunit 🟢

  • [fix] Improve AssertComparisonToSpecificMethodRector for assert false (#​594)

v2.2.9: Released Rector 2.2.9

Compare Source

New Features and Changes 🥳

  • [exp] Add RemoveReturnThisFromSetterClassMethodRector (#​7624)
  • [exp] Add FluentSettersToStandaloneCallMethodRector (#​7625)
  • [dead-code] Add RemoveNextSameValueConditionRector (#​7525)
  • Update PHP upgrade support to version 8.5 (#​7644), Thanks @​guilheb!
  • [stmts-aware] Deprecate StmtsAwareInterface interface and replace with meta-type + groups (#​7679) - How to upgrade?

Bugfixes 🐛

  • Improve parent call fixture in Php4ConstructorRector not to use KEY constant (#​7642)
  • Improve ClassPropertyAssignToConstructorPromotionRector not to use STMT_KEY attribute value (#​7645)
  • [TypeDeclaration] Handle crash on combine union types on AddClosureParamTypeForArrayReduceRector (#​7636)
  • [TypeDeclaration] Skip no key generic object return on NarrowObjectReturnTypeRector (#​7623)
  • [CodingStyle] Do not use FullyQualified on "self" on ClosureFromCallableToFirstClassCallableRector (#​7632), Thanks @​devnix!
  • [Php80] Handle mix still annotation and already attribute on AnnotationToAttributeRector (#​7639), Thanks @​acoulton!
  • cleanup RemoveUnsuedPrivateMethodRector (#​7643)
  • re-index changed nodes only (#​7651)
  • avoid spl_object_id() if no change in AbstractRector (#​7653)
  • Refine bug report template formatting (#​7655), Thanks @​u01jmg3!
  • [Php85] Skip inside expression assign on ArrayFirstLastRector (#​7657)
  • Rename SymplifyQuoteEscapeRector to SimplifyQuoteEscapeRector (#​7658), Thanks @​VincentLanglet!
  • docs: fix typos in deprecation notice (#​7666), Thanks @​sir-kain!
  • [Dep] Ignore unknown class error on build/config/config-downgrade.php on shipmonk/composer-dependency-analyser to 1.8.4 (#​7668)
  • [dx] Make registration of custom NodeVisitor is easier (#​7669)
  • raise deps (rectorphp/rector-src@440d6d7)
  • [Experiment][Printer] Move AlwaysRememberedExpr tweak logic to separate service after a Match_ found (#​7654)
  • Narrow object return type v2 (#​7618), Thanks @​Orest-Divintari!
  • [Php80] Handle OpenApi\Attributes\Property example to keep numeric string on AnnotationToAttributeRector (#​7677)
  • keep file without namespace implementing interface to alling with other nodes (#​7679)
  • [EarlyReturn] Handle If, elseIf, else all returned on RemoveAlwaysElseRector (#​7659)
  • [DeadCode] skip Ds\Map::get() on RemoveNullArgOnNullDefaultParamRector (#​7665)

Removed 💀

  • [DeadCode] Skip used from property fetch reference on loop on RemoveUnusedVariableAssignRector (#​7635)
  • [internal] Extract ImmutableNodeTraverser from vendor, to remove patch and keep using cache for node types (#​7634)
  • Deprecated STMT_KEY and remove its set attribute value (#​7647)
  • [attribute] Remove unused AttributeKey::REPRINT_RAW_VALUE (#​7664)



rectorphp/rector-symfony 🎵

  • [stmts-aware] Use NodeGroup::STMTS_AWARE over StmtsAwareInterface (#​886)
  • Fix rule when method is __invoke (#​884), Thanks @​wilfi00
  • [CodeQuality] Do not replace variable assign on ControllerMethodInjectionToConstructorRector (#​883)
  • Handle Doctrine constraints in ConstraintOptionsToNamedArgumentsRector (#​882), Thanks @​johndodev
  • [CodeQuality] Skip FOS\RestBundle ParamFetcher on ControllerMethodInjectionToConstructorRector (#​881)
  • [CodeQuality] Skip autowire() method via @​required and Required attribute (#​880)
  • Fix scoped \ cleared on single quote string on ControllerMethodInjectionToConstructorRector (#​879)
  • [CodeQuality] Skip Common Entity contains subnamespaces on ControllerMethodInjectionToConstructorRector (#​878)
  • [CodeQuality] Skip from route path /edit/{id} on ControllerMethodInjectionToConstructorRector (#​877)
  • handle use var (#​875)
  • Remove STMT_KEY from rules (#​874)
  • Remove stmt key from LogoutHandlerToLogoutEventSubscriberRector (#​870)
  • Fix build of prefixed SymfonyFunctionName::REF and SymfonyFunctionName::SERVICE usage (#​869)
  • [config] Fix couple config autowire rules (#​868)
  • Fix unit test (#​867)
  • skip constructor in ControllerMethodInjectionToConstructorRector (#​866)
  • [code-quality] Add ControllerMethodInjectionToConstructorRector (#​865)



rectorphp/rector-phpunit 🟢

  • [CodeQuality] Skip Generator on AssertCompareOnCountableWithMethodToAssertCountRector (#​591)
  • remove stmt key from ConstructClassMethodToSetUpTestCaseRector (#​590)
  • Remove stmt key from TestListenerToHooksRector (#​589)
  • fix phpunit covers default class with short covers methods (#​588), Thanks @​irosner
  • [CodeQuality] Do not use FullyQualified on "self" on WithCallbackIdenticalToStandaloneAssertsRector (#​587)
  • [phpunit 10] Improve PropertyExistsWithoutAssertRector coverage (#​586)
  • [depre] Deprecate AssertPropertyExistsRector as method was removed in PHPUnit 10 (#​585)
  • [depre] Deprecate RemoveDataProviderParamKeysRector as the keys can be useful to improve test readability (#​584), Thanks @​MacDada
  • [CodeQuality] Handle on without namespace on DeclareStrictTypesTestsRector (#​583)

v2.2.8: Released Rector 2.2.8

Compare Source

New Features 🥳

  • [type-declaration] Add return data provider array type from strict test method param (#​7605)
  • [coding-style] Add NestedTernaryToMatchRector (#​7572)
  • [TypeDeclaration] Register NarrowObjectReturnTypeRector to type declaration set (#​7615)

Bugfixes 🐛

  • [Diffs] Handle --no-diffs usage to show file have been changed if any with --dry-run + --no-diffs (#​7619)
  • [Php81] Skip callable variadic in array_all() on FunctionLikeToFirstClassCallableRector (#​7606)
  • fix a syntax error in the ArrayFirstLastRector rule documentation (#​7613), Thanks @​esnard!
  • Narrow object return type (#​7575), Thanks @​Orest-Divintari!
  • [type-declaration] Rename NarrowTooWideReturnType to NarrowWideUnionReturnTypeRector (#​7614)
  • [TypeDeclaration] Also update generic collection docblock on NarrowObjectReturnTypeRector (#​7616)
  • [TypeDeclaration] Do not change valid generic docblock on NarrowObjectReturnTypeRector (#​7617)
  • [Privatization] Do not remove readonly on promoted property on PrivatizeFinalClassPropertyRector (#​7611)

Removed 💀

  • [dx] help - omit explicit command name as no longer needed; remove verbosity option, use debug instead (#​7620)

rectorphp/rector-symfony 🎵

  • ensure reset args after loop (#​864)
  • Bump PHPStan to ^2.1.32 and fix test for InlineClassRoutePrefixRector (#​863)
  • [Symfony74] replace PropertyMetadata deprecated functions (#​862), Thanks @​MrYamous
  • [Symfony74] update WorkflowDumpCommand namespace (#​861), Thanks @​MrYamous
  • add property support to ErrorNamesPropertyToConstantRector (#​860)
  • Support converting all options to twig attributes (#​859), Thanks @​Spea

rectorphp/rector-phpunit 🟢

  • [CodeQuality] Skip in static method on AssertFuncCallToPHPUnitAssertRector (#​582)
  • add implicit method call support (#​581)
  • add multi callbacks support (#​580)
  • allow extra stmt (#​579)
  • add dynamic instanceof support (#​578)
  • [code-quality] Add SimplerWithIsInstanceOfRector (#​577)
  • add sole instanceof support (#​576)
  • add use var (#​575)
  • add return type or empty if nothing to add (#​574)
  • [code-quality] Add MergeWithCallableAndWillReturnRector (#​573)
  • handle solo identical as well, to get better message (#​572)
  • always return true, as required by contract (#​571)
  • add external variable use (#​570)
  • add isset support, revert order to respect original one (#​569)
  • [code-quality] Add WithCallbackIdenticalToStandaloneAssertsRector (#​568)

rectorphp/rector-downgrade-php ⬇️

  • Bump to PHPStan ^2.1.32 and ignore false positive instanceof in OR usage (#​344)

v2.2.7: Released Rector 2.2.7

Compare Source

New Features 🥳

  • [type-declaration] Add ReturnIteratorInDataProviderRector (#​7593)
  • [type-declarations] Add TypedStaticPropertyInBehatContextRector (#​7596)
  • [DeadCode] Register RemoveNullArgOnNullDefaultParamRector to dead code set (#​7597)
  • [php 8.5] Split of nested functions calls to pipe operator in a new standalone rule (#​7603)

Bugfixes 🐛

  • always add nullable on TypedPropertyFromJMSSerializerAttributeTypeRector as serializer does not use constructor (#​7599)
  • [Php81] Skip callable param union on FunctionLikeToFirstClassCallableRector (#​7589)
  • [CodeQuality] Skip ArrayDimFetch with BitwiseXor on CombinedAssignRector (#​7590)
  • [Php84] Skip variable extraction with return early on ForeachToArrayAllRector (#​7591)
  • [PHP 8.5] rename NestedToPipeOeratorRector to SequentialAssignmentsToPipeOperatorRector, handle only assigns, not nested calls (#​7588)
  • [Php81] Skip as Arg of non-native function call on FunctionLikeToFirstClassCallableRector (#​7592)
  • skip different args passed to call-like and required by arrow function in FunctionLikeToFirstClassCallableRector (#​7594)
  • handle public properties in TypedPropertyFromJMSSerializerAttributeTypeRector as nullable (#​7595)
  • skip to many in /TypedPropertyFromJMSSerializerAttributeTypeRector (#​7598)
  • skip refernce one as well in /TypedPropertyFromJMSSerializerAttributeTypeRector (rectorphp/rector-src@842aa94)
  • split TypedPropertyFromJMSSerializerAttributeTypeRector to scalar and object types (#​7602)
  • Don't require parentheses for short-ternaries (#​7604), Thanks @​martinstuecklschwaiger!

rectorphp/rector-symfony 🎵

  • [Configs] Skip first class callable on RemoveConstructorAutowireServiceRector (#​858)

rectorphp/rector-phpunit 🟢

  • [depre] Deprecate SetUpBeforeClassToSetUpRector as can break code easily (#​567)

v2.2.6: Released Rector 2.2.6

Compare Source

New Features 🥳

  • [PHP 8.5] Add NestedToPipeOperatorRector (#​7577)
  • [code-quality] Add DirnameDirConcatStringToDirectStringPathRector (#​7552)
  • [dead-code] Add RemoveNullArgOnNullDefaultParamRector (#​7562)
  • register AddClosureParamTypeFromIterableMethodCallRector to type declaration set (rectorphp/rector-src@4d78f41)
  • register AddParamArrayDocblockBasedOnCallableNativeFuncCallRector in type declaration docblocks (rectorphp/rector-src@80f7db8)

Bugfixes 🐛

  • Fix next catch missed variable rename in CatchExceptionNameMatchingTypeRector (#​7547)
  • [Php81] Fix first class callable should not have trailing comma on FunctionLikeToFirstClassCallableRector (#​7551)
  • [CodingStyle] Skip Method target not found or defined only via @​method on FunctionLikeToFirstClassCallableRector (#​7553)
  • [Php81][CodingStyle] Allow both exists in both @​method and native method on FunctionLikeToFirstClassCallableRector (#​7559)
  • [Php81][CodingStyle] Skip param used as invokable function multi args on FunctionLikeToFirstClassCallableRector (#​7563)
  • [Php81][CodingStyle] Skip Closure/ArrowFunction as assign expr on FunctionLikeToFirstClassCallableRector (#​7564)
  • finalize rules as well (#​7575), Thanks @​Orest-Divintari!
  • [Php85] Clean up dynamic expr check on NestedToPipeOperatorRector (#​7578)
  • [Php81] Skip Closure bindTo on FunctionLikeToFirstClassCallableRector (#​7581)
  • Remove trait support rom AddParamBasedOnParentClassMethodRector as depends on context; move to Class_ node hooking for efficiency (#​7587)
  • [Php85] Handle indent inside class method on NestedToPipeOperatorRector (#​7584)
  • make DeclareStrictTypesRector skip files without namespace, as very risky in files without PSR-4 autodiscovery (#​7585)
  • speedup - skip refleciton if all params are typed (rectorphp/rector-src@08f6dc3)
  • skip all-typed properties in TypedPropertyFromStrictConstructorRector (rectorphp/rector-src@c5d9fdf)
  • skip no-type params in RenameParamToMatchTypeRector (rectorphp/rector-src@cd7eb93)
  • optimize ParamTypeByParentCallTypeRector to handle only classes with parents and method without param type (rectorphp/rector-src@0ca4e91)
  • [DeadCode] Allow FuncCall on RemoveNullArgOnNullDefaultParamRector (#​7567)
  • [DeadCode] Handle with middle default not null on RemoveNullArgOnNullDefaultParamRector (#​7565)
  • [DeadCode] Allow remove named argument if position is match with param on RemoveNullArgOnNullDefaultParamRector (#​7566)
  • [comments] Remove attribute comments support as comments require standalone line before any doctrine annotation (#​7582)

Removed and Deprecated 💀

  • [depre] Deprecate ParentClassToTraitsRector as very narrow use case to be generic, create custom rule instead (#​7550)
  • [depre] Deprecate ReplaceParentCallByPropertyCallRector as not used since doctrine set service removed, not standalone rule (#​7554)
  • [depre] Deprecate MethodCallToNewRector as not used and based on assumptions (#​7555)
  • [depre] Deprecate MethodCallToPropertyFetchRector, as not practical/used and part of removed set (#​7556)
  • [depre] Deprecate MethodCallToPropertyFetchRector as not used and part of removed set (#​7557)
  • [depre] Deprecate PropertyFetchToMethodCallRector not used and as too generic, use custom rule instead (#​7558)
  • [depre] Deprecate PropertyAssignToMethodCallRector as too narrow use-case and never used (#​7561)
  • [depre] Deprecate ReturnTypeWillChangeRector as discourages from filling correct types, use type declaration set instead (#​7570)
  • [depre] Deprecate MultiDimensionalArrayToArrayDestructRector as not part of any set, can create less readable and harder to analyse code (#​7573)
  • [depre] Deprecate InlineVarDocTagToAssertRector as not par of any set, and create prod crashing code (#​7574)
  • [depre] Deprecate AddAllowDynamicPropertiesAttributeRector, as not in PHP sets and does not help by adding attribute everywhere (#​7568)
  • [depre] Deprecate AddLiteralSeparatorToNumberRector as cannot be automated and depends on context (#​7569)

rectorphp/rector-symfony 🎵

  • [Configs] Skip first class callable on RemoveConstructorAutowireServiceRector (#​858)
  • [config] Add FromServicePublicToDefaultsPublicRector (#​857)
  • cover 2nd arg class in RemoveConstructorAutowireServiceRector (#​856)
  • [config] Add RemoveConstructorAutowireServiceRector (#​855)
  • [Symfony73] Skip empty result of named arguments on ConstraintOptionsToNamedArgumentsRector (#​853)
  • [depre] Deprecate StringExtensionToConfigBuilderRector as deprecated in Symfony 7.4 (#​854)

rectorphp/rector-phpunit 🟢

  • [code-quality] Add DeclareStrictTypesTestsRector to code-quality test (#​566)
  • [depre] Deprecate AddParentSetupCallOnSetupRector as not generic to be automated, fill manually where needed (#​565)
  • [CodeQuality] Skip used inside static closure on AssertFuncCallToPHPUnitAssertRector (#​564)
  • register ReplaceAtMethodWithDesiredMatcherRector to code-quality (#​563)
  • [depre] Deprecate CreateMockToAnonymousClassRector as requires manual work, often value object setter can be better alternative (#​562)

v2.2.5: Released Rector 2.2.5

Compare Source

Rules Registered in sets 🥳

Couple long-existing rules were added to PHP 8.1, code quality and type declaration sets after optional community testing ✔️
If you'll experience any undersired changes, let us know 👍


Bugfixes 🐛

  • [fix] skip variadic param on ParamTypeByParentCallTypeRector (#​7532)
  • [Php81][CodingStyle] Skip multi params on FunctionLikeToFirstClassCallableRector (#​7537)
  • [Php81][CodingStyle] Skip callable param assign with signature multi params on FunctionLikeToFirstClassCallableRector (#​7538)
  • Fix NullToStrictStringFuncCallArgRector with probabilistic check for plural array passed to function where array allowed (#​7539)
  • [Php81][CodingStyle] Skip variadic not used on FunctionLikeToFirstClassCallableRector (#​7540)
  • [Php81] Keep nullable param on NewInInitializerRector (#​7545)
  • [php 8.1] skip nullable property without null default in NewInInitializerRector (#​7546)

Removed and deprecated 💀

  • [depre] Deprecate 3 configurable-only, never used closure param rules as too specific (#​7541)
  • [depre] Deprecate RenameFunctionLikeParamWithinCallLikeArgRector as never used, too narrow and better suits custom project (#​7544)

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/rector-rector-2.x branch from b8cbd71 to d11af1c Compare September 5, 2025 08:42
@renovate renovate bot changed the base branch from main to preprod September 5, 2025 08:42
@renovate
Copy link
Contributor Author

renovate bot commented Sep 5, 2025

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: composer.lock
Command failed: install-tool php 8.2

@renovate renovate bot force-pushed the renovate/rector-rector-2.x branch 3 times, most recently from a3744f9 to 6aeba22 Compare September 10, 2025 14:15
@renovate renovate bot force-pushed the renovate/rector-rector-2.x branch 3 times, most recently from 60427af to f173848 Compare October 12, 2025 01:03
@renovate renovate bot changed the title Update dependency rector/rector to v2 chore(deps): update dependency rector/rector to v2 Oct 16, 2025
@renovate renovate bot force-pushed the renovate/rector-rector-2.x branch from f173848 to d7d9a99 Compare October 22, 2025 11:32
@renovate renovate bot changed the title chore(deps): update dependency rector/rector to v2 Update dependency rector/rector to v2 Oct 22, 2025
@renovate renovate bot force-pushed the renovate/rector-rector-2.x branch from d7d9a99 to 75ac3d4 Compare October 29, 2025 23:36
@renovate renovate bot force-pushed the renovate/rector-rector-2.x branch from 75ac3d4 to 62849ae Compare November 12, 2025 22:49
@renovate renovate bot force-pushed the renovate/rector-rector-2.x branch from 62849ae to 8ec53ee Compare November 28, 2025 17:45
@renovate renovate bot changed the title Update dependency rector/rector to v2 chore(deps): update dependency rector/rector to v2 Nov 28, 2025
@renovate renovate bot changed the title chore(deps): update dependency rector/rector to v2 Update dependency rector/rector to v2 Nov 30, 2025
@renovate renovate bot force-pushed the renovate/rector-rector-2.x branch from 8ec53ee to 1c3137a Compare December 1, 2025 14:53
@renovate renovate bot changed the title Update dependency rector/rector to v2 chore(deps): update dependency rector/rector to v2 Dec 3, 2025
@renovate renovate bot force-pushed the renovate/rector-rector-2.x branch 3 times, most recently from 8becd3f to 48baf26 Compare December 15, 2025 16:57
@renovate renovate bot changed the title chore(deps): update dependency rector/rector to v2 Update dependency rector/rector to v2 Dec 17, 2025
@renovate renovate bot changed the title Update dependency rector/rector to v2 chore(deps): update dependency rector/rector to v2 Dec 20, 2025
@renovate renovate bot force-pushed the renovate/rector-rector-2.x branch from 48baf26 to 8427475 Compare December 26, 2025 01:28
@renovate renovate bot changed the title chore(deps): update dependency rector/rector to v2 Update dependency rector/rector to v2 Dec 30, 2025
@renovate renovate bot force-pushed the renovate/rector-rector-2.x branch from 8427475 to cd04fc5 Compare January 8, 2026 17:43
@renovate renovate bot force-pushed the renovate/rector-rector-2.x branch 2 times, most recently from f8a5d39 to d5e1626 Compare January 18, 2026 21:59
@renovate renovate bot force-pushed the renovate/rector-rector-2.x branch 28 times, most recently from af597d7 to 03f77a5 Compare February 15, 2026 06:10
@renovate renovate bot force-pushed the renovate/rector-rector-2.x branch from 03f77a5 to 2b65139 Compare February 15, 2026 09:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants