Download Latest Version Released Rector 2.6.7 source code.zip (4.2 MB) Google Add to Preferred Sources
Home / 2.6.4
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-08-27 5.4 kB
Released Rector 2.6.4 source code.tar.gz 2026-08-27 2.0 MB
Released Rector 2.6.4 source code.zip 2026-08-27 4.1 MB
Totals: 3 Items   6.1 MB 0

A tooling release under the hood: Rector's dependency-injection container moves off illuminate/container onto entropy/entropy, and composer-based sets now target the lowest declared version of a library instead of guessing the current one.


New rules 🎉

rector-src

  • [Php7.4] IfToNullCoalescingAssignRector — convert an if null-guard into ??= (#8356)
  • [Php7.3] ArrayKeysToArrayKeyFirstLastRector — array_keys($a)[0] → array_key_first($a) (#8238)

rector-symfony

  • [Web Link] WebLinkStringRelationsToConstantsRector (#1058)


Engine 🔧

  • Switch the DI container from illuminate/container to entropy/entropy (#8362) — lighter container, order-independent service collections via autodiscover()
  • [VersionBonding] Allow a rule to require multiple composer package constraints at once (#8355)
  • [Composer] Target the lowest declared version for libraries in composer-based sets; only a project package type is treated as an application (#8359, #8363)
  • [Configuration] Skip deprecated rules pulled in from an active set — warn only instead of crashing (#8358)
  • [DI] Register PHPStan PhpVersionFactory as a public service so third-party rules can autowire it (#8365)
  • [PhpParser] Merge decorating node visitors from 14 to 8 for faster traversal (#8380)


Bugfixes 🐛

rector-src

  • [TypeDeclarationDocblocks] Skip ClassMethodArrayDocblockParamFromLocalCallsRector on methods overriding a parent/interface (#8357)
  • [TypeDeclarationDocblocks] Skip a contradicting @param array when the local call type conflicts with the default value (#8381)
  • [Naming] Skip a valid singular name with an ous suffix in RenameForeachValueVariableToMatchExprVariableRector (#8382)

rector-symfony

  • [Symfony 6.1] Skip CommandConfigureToAttributeRector on non-constant configure() values (#1057)
  • [Symfony 3.4] Skip ContainerGetNameToTypeInTestsRector when the named service has no matching FQCN service (#1051)
  • [Symfony 3.0] Skip OptionNameRector when no option name changes (#1044)

rector-phpunit

  • [CodeQuality] Fix AddInstanceofAssertForNullableArgumentRector duplicating assertInstanceOf inside traits (#773)
  • [CodeQuality] Fix MatchAssertSameExpectedTypeRector rewriting a passing assert into a failing one (#771)


Set changes 📈

rector-src

  • [CodeQuality] Add FlipNegatedTernaryInstanceofRector to the code quality level (#8385)

rector-symfony

  • [Symfony 7.3] Add missing rename function call (#1056)
  • [Symfony 7.2] Add missing rename class and function calls (#1055)
  • [CodeQuality] Move RequestIsMainRector and other version-bonded rules to the composer-based set (#1048, #1045)
  • [Symfony 7.3] GetFiltersAndFunctionsToAsTwigAttributeRector — support arrow-call functions; gate on symfony/twig-bridge 7.3, not twig alone (#1043, #1050)
  • [Set] Mark ANNOTATIONS_TO_ATTRIBUTES as @internal instead of @deprecated (#1053)

rector-doctrine

  • Move AddAnnotationToRepositoryRector to the composer-based set only (#510)


Deprecations 💀

Deprecated rules run without any effect, print a warning and will be removed in a future major release.

rector-symfony

  • [CodeQuality] InlineClassRoutePrefixRector (#1049)
  • [CodeQuality] AddTraitGetterReturnTypeBasedOnSetterRequiredRector (#1047)
  • [CodeQuality] LiteralGetToRequestClassConstantRector (#1046)


Removals 💀

rector-src

  • [Cleanup] Remove the write-only CallLikeThisBoundClosureArgsNodeVisitor and its unread attribute (#8373)
Source: README.md, updated 2026-08-27