Skip to content

[Conductor] Update dev - #111

Merged
pscheit merged 1 commit into
mainfrom
conductor-multiple-vendors-all-83676
Jul 31, 2026
Merged

[Conductor] Update dev#111
pscheit merged 1 commit into
mainfrom
conductor-multiple-vendors-all-83676

Conversation

@private-packagist

Copy link
Copy Markdown
Contributor

This PR was automatically generated by Conductor.

The PR contains the changes generated by running the following command:

composer update friendsofphp/php-cs-fixer:v3.95.18 phpstan/phpstan:2.2.7 rector/rector:2.5.9 --with-all-dependencies --minimal-changes

Changelog

friendsofphp/php-cs-fixer (Source: GitHub Releases))

v3.95.18

What's Changed

New Contributors

Full Changelog: v3.95.17...v3.95.18

v3.95.17

What's Changed

Full Changelog: v3.95.16...v3.95.17

phpstan/phpstan (Source: GitHub Releases)

2.2.7

Bugfixes 🐛

Performance 🏎️

Internals 🔍

  • ExprHandlerRegistry does not need to be AutowiredService (phpstan/phpstan-src@​36392ba)
  • Repeat a shadowed class's interfaces on its stub shell (#​6113)
  • Run the benchmark on PHP 7.4 in addition to PHP 8.5 (#​6121)
  • Check bench/data files with RequiredPhpVersionCommentTest (#​6122), thanks @​staabm!
  • Introduce ExpressionResultFactory (phpstan/phpstan-src@​8f5111f)
  • ExpressionResult - add beforeScope (phpstan/phpstan-src@​a7094b5)
  • ExpressionResult - add Expr (phpstan/phpstan-src@​abcce56)
  • Eliminate the OriginalPropertyTypeExpr virtual node (#​6129)
  • Eliminate the GetOffsetValueTypeExpr virtual node (#​6129)
  • Eliminate the GetIterableKeyTypeExpr virtual node (#​6129)
  • Eliminate the GetIterableValueTypeExpr virtual node (#​6129)
  • Deduplicate constant-condition vs impossible-check reports via collectors instead of asking the type specifier inline (#​6132)
  • Replace SpecifiedTypes::normalize() with symbolic alternative-form entries (#​6133)
  • Resolve early-terminating calls to an explicit never type in the call handlers (#​6134)
  • Read operand types from ExpressionResults in Throw/BooleanAnd/Coalesce handlers (#​6135)
  • Read operand types from ExpressionResults in Ternary/ArrayDimFetch/PropertyFetch handlers (#​6136)
  • Read operand types from ExpressionResults in BinaryOp/BooleanOr/MethodCall/Match handlers (#​6137)
  • Read expression types from ExpressionResults in NodeScopeResolver and handlers (#​6138)
  • Fill the foreach key-loop native types with the native flavour (#​6141)
  • Run engine-feeding node-callback gatherers synchronously at the emission position (#​6142)
  • Track containsNullsafe on ExpressionResult and propagate it through fetch/call chains (#​6143)

2.2.6

This release fixes 33 issues! 🎉

PHPStan Turbo

Major new features 🚀

  • PHPStan Turbo (https://github.com/phpstan/turbo-ext/)
    • Optional native PHP extension (PHP 8.3+) written in C++ that makes running PHPStan 10-30 % faster (depending on project specifics)
    • Users installing PHPStan through Composer with phpstan/phpstan get it automatically. Composer package ships prebuilt binaries for the most common platforms — Linux (glibc and musl, x86_64 and arm64), macOS, and Windows (x86_64)
    • Users running standalone phpstan.phar can install the extension with pie install phpstan/turbo
    • The fact that it's enabled can be verified with vendor/bin/phpstan diagnose or running analyse -vvv
    • There's room to improve performance with this technique in the future, but we're shipping it now because it brings real benefits already.

Bleeding edge 🔪

If you want to see the shape of things to come and adopt bleeding edge features early, you can include this config file in your project's phpstan.neon:

includes:
	- vendor/phpstan/phpstan/conf/bleedingEdge.neon

Of course, there are no backwards compatibility guarantees when you include this file. The behaviour and reported errors can change in minor versions with this file included. Learn more

Improvements 🔧

Bugfixes 🐛

Performance 🏎️

Function signature fixes 🤖

Internals 🔍

  • Refactor: extract ConfiguredPhpVersionRangeHelper (#​6014), thanks @​staabm!
  • Utilize ConfiguredPhpVersionRangeHelper (#​6017), thanks @​staabm!
  • Add named argument tests for @​pure-unless-callable-is-impure (#​6022), thanks @​zonuexe!
  • Rename Test-classes colliding with builtin classes (#​6032), thanks @​staabm!
  • Upgrade PHPBench to 1.7.0 and use aggregate-preview report (#​6067), thanks @​dantleech!
  • Introduce #[ExtensionInterface] attribute, derive the interface-tag mapping from it (#​6096)
  • Introduce ExtensionsCollection, #[AutowiredExtensions] and Container::getExtensionsCollection(), replace extension providers (#​6098)
  • Add autoTag parameter to #[AutowiredService], migrate services that must not be auto-tagged (#​6096)
  • Introduce #[InstanceofDeprecated] attribute, derive ApiInstanceofTypeRule map from it (#​6096)
  • Update composer-attribute-collector: collect attributes without autoloading under PHP < 8 (#​6096)
  • Remove obsolete PDO.patch for phpstorm-stubs (#​6073), thanks @​vrana!
  • Compile #[AutowiredParameter] references into deferred getParameter() lookups (#​6102)
  • Validate service tags in afterCompile() so tags added by any extension are covered (#​6102)
  • Discover compiler extensions from the #[ContainerExtension] attribute (#​6102)
  • Upgrade nette/di to 3.1.10 and drop the deleted-tag pin (#​6102)
rector/rector (Source: GitHub Releases))

2.5.9

Bugfixes 🐛

  • [DeadCode] Remove unreachable class-like checks in Class_-only rules (#​8217)
  • [CodingStyle] Use native php-parser node API over class reflection (#​8218)
  • [Php80] Remove AstResolver usage on AddParamBasedOnParentClassMethodRector (#​8196)
  • Wire RichParser node visitors via DI factory instead of private property hack (#​8215)
  • [Php80] Skip promoting a property the parent declares without a native type in ClassPropertyAssignToConstructorPromotionRector (#​8232)
  • [DeadCode] Keep empty __construct() in anonymous class that extends parent on RemoveEmptyClassMethodRector (#​8219)
  • [DeadCode] Skip negative zero on RemoveDeadZeroAndOneOperationRector (#​8213)
  • [DeadCode] Skip protected property on non-final class on RemoveDefaultValueFromAssignedPropertyRector (#​8214)
  • [DeadCode] Skip array dim fetch assign on RemoveDefaultValueFromAssignedPropertyRector (#​8212)
  • [DeadCode] Skip if/else in loop on RemoveDefaultValueFromAssignedPropertyRector (#​8211)
  • [DeadCode] Skip early return in constructor on RemoveDefaultValueFromAssignedPropertyRector (#​8209)

Set changes 🗑️

NullToStrictStringFuncCallArgRector out of the PHP 8.1 set (#​8234)

The rule and all its fixtures stay, so it can still be opted into:

->withRules([NullToStrictStringFuncCallArgRector::class])

Deprecations 💀

TypeDeclarationDocblocks: 3 data provider docblock rules (#​8235)

Data provider docblock typing is not relevant to code quality — it increases maintenance cost and decreases readability of the test class.

Deprecated rules:

  • AddReturnArrayDocblockFromDataProviderParamRector
  • AddReturnDocblockDataProviderRector
  • AddParamArrayDocblockFromDataProviderRector

rectorphp/rector-symfony 🎵

  • [Symfony72] Match push() to its own RequestStack variable in PushRequestToRequestStackConstructorRector (#​971)
  • [Symfony44] Skip custom isGranted() service calls in controllers in AuthorizationCheckerIsGrantedExtractorRector (#​973)
  • [Symfony42] Update Cookie fixture after NewToStaticCallRector config removal (#​974)
  • Drop rector/type-perfect, its rules ship in tomasvotruba/type-coverage 2.3 now (#​972)
  • Bump dev dependencies, PHPUnit 13 (#​976)
  • [deps] Bump symfony/config to ^8.1 (#​977)

Deprecated: SimplifyFormRenderingRector (#​975)

The rule removed the explicit ->createView() call when a form was passed to render():

Symfony supports passing the FormInterface directly, but the shorthand is ambiguous and breaks dynamic forms: forms modified in PRE_SET_DATA/POST_SUBMIT listeners and submitted over AJAX end up with a 422 response and no clear error. Keeping the explicit ->createView() call is the reliable form. See symfony/symfony#​50542.


rectorphp/rector-phpunit 🧪

  • [PHPUnit 13] Fix class in expectExceptionMessage() rename to TestCase (#​735)

rectorphp/rector-downgrade-php ⬇️

  • [DowngradePhp81] Reference MHASH_* constants by name in DowngradeHashAlgorithmXxHashRector to fix PHP 8.5 deprecation (#​386)

2.5.8

New Features 🥳

  • [dx] Add "if" set with if/else/ternary rules (#​8199)
  • [DeadCode] Add RemoveDeadInstanceOfAssertRector (#​8202)
  • [DeadCode] Add RemoveDoubleSelfAssignRector (#​8203)
  • [DeadCode] Add RemoveParentDelegatingClassMethodRector (#​8204)
  • [DeadCode] Add RemoveDefaultValueFromAssignedPropertyRector (#​8207)
  • [TypeDeclaration] Fix incomplete type on yield variable + yield from in AddParamTypeBasedOnPHPUnitDataProviderRector (#​8206)

Bugfixes 🐛

  • Fix LogicalToBooleanRector: parenthesize assignments nested under unary/binary operators (#​8184)
  • [TypeDeclaration] Skip trait methods on ParamTypeByMethodCallType rules (#​8189)
  • [Php80] Skip promotion when property type is wider than constructor param on ClassPropertyAssignToConstructorPromotionRector (#​8170), Thanks @​ximki-vinki!
  • [Php85] Skip outer spread on NestedFuncCallsToPipeOperatorRector (#​8191)
  • [DeadCode] Fix crash on float version arg in ConditionResolver (#​8192)
  • Make NestedFuncCallsToPipeOperatorRector minimum depth configurable (#​8193)
  • Fix codeception data provider detection (#​8194), Thanks @​d-mitrofanov-v!
  • Make PHPStan DI-Container available in bootstrap files (#​8190), Thanks @​staabm!
  • [Privatization] Skip Symfony Command protected static property in PrivatizeFinalClassPropertyRector (#​8201)
  • Bump to PHPStan ^2.2.6 and Fix its Container compatibility in RichParser (#​8208)

Removed 💀

  • skip @​ return this on RemoveReturnTagIncompatibleWithNativeTypeRector on Traits (#​8185)
  • [DeadCode] Skip string scalar sub type on RemoveReturnTagIncompatibleWithNativeTypeRector (#​8186)

rectorphp/rector-symfony 🎵

  • [Symfony73] Remove empty configure() method in CommandHelpToAttributeRector (#​969)
  • [Symfony73] Keep AbstractExtension when Twig extension overrides a built-in function/filter (#​968)
  • [Symfony73] Wrap scalar groups option in array in ConstraintOptionsToNamedArgumentsRector (#​967)
  • [Symfony61] Remove empty configure() method even with empty body (#​966)
  • [Symfony61] Remove now empty configure() method in CommandConfigureToAttributeRector (#​965)
  • [CodeQuality] Respect typeGuardedClasses and skip closure-only returns in ResponseReturnTypeControllerActionRector (#​964)
  • [Symfony44] Return 1 instead of (int) false in ConsoleExecuteReturnIntRector (#​963)
  • [CodeQuality] Add union and method call return type support to ResponseReturnTypeControllerActionRector (#​961)
  • [Twig30] Add new set for Twig 30 (#​960), Thanks @​MrYamous

rectorphp/rector-doctrine 🟠


rectorphp/rector-phpunit 🟢

  • [PHPUnit 13] Add PHPUnit 13 config set (#​733)
  • [CodeQuality] Skip super global variables on AssertIssetToSpecificMethodRector (#​732)
  • [CodeQuality] Skip anonymous classes in AssertClassToThisAssertRector (#​729)
  • [CodeQuality] Move AssertClassToThisAssertRector hook from Class_ to ClassMethod (#​728)
  • AssertEqualsToSameRector: skip arrays whose actual value key order is not provably identical (#​727)

Task options

If you close the PR, the task will be skipped and Conductor will schedule the next task. Clicking the "Skip" button in the UI has the same effect. Conductor won't attempt to update the dependency to this exact version again but it will schedule updates to newer versions.


Powered by Private Packagist

Conductor executed the following commands:
composer update friendsofphp/php-cs-fixer:v3.95.18 phpstan/phpstan:2.2.7 rector/rector:2.5.9 --with-all-dependencies --minimal-changes
@private-packagist

Copy link
Copy Markdown
Contributor Author

composer.lock

Dev Package changes

Package Operation From To About
friendsofphp/php-cs-fixer upgrade v3.95.16 v3.95.18 diff
phpstan/phpstan upgrade 2.2.5 2.2.7 diff
rector/rector upgrade 2.5.7 2.5.9 diff

Settings · Docs · Powered by Private Packagist

@pscheit
pscheit merged commit 89f2421 into main Jul 31, 2026
1 check passed
@private-packagist
private-packagist Bot deleted the conductor-multiple-vendors-all-83676 branch July 31, 2026 17:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant