Update dependency friendsofphp/php-cs-fixer to v3.95.10 #5

Open
renovate-bot wants to merge 1 commit from renovate/friendsofphp-php-cs-fixer-3.x-lockfile into master
Collaborator

This PR contains the following updates:

Package Change Age Confidence
friendsofphp/php-cs-fixer 3.16.03.95.10 age confidence

Release Notes

PHP-CS-Fixer/PHP-CS-Fixer (friendsofphp/php-cs-fixer)

v3.95.10

Compare Source

  • fix: TokensAnalyzer - handle T_PUBLIC_SET, T_PROTECTED_SET, T_PRIVATE_SET (#​9696)

v3.95.9

Compare Source

  • chore: apply class_keyword (#​9689)
  • refactor: change Fixers execution order to always-deterministic (#​9690)

v3.95.8

Compare Source

  • fix: SingleClassElementPerStatementFixer - do not drop modifiers when splitting final constants/properties (#​9687)

v3.95.7

Compare Source

  • fix: ClassReferenceNameCasingFixer - do not change case of typed class constant names (#​9686)

v3.95.6

Compare Source

  • chore: Docker - ignore root-user warning for pip (#​9682)
  • chore: fix typo in comment about fixer configuration (#​9675)
  • chore: narrow Preg::match/Preg::matchAll subject string type when match is truthy (#​9668)
  • deps: bump alpine from 3.23 to 3.24 in the all group (#​9679)
  • deps: bump codecov/codecov-action from 6 to 7 in /.github/workflows in the all group across 1 directory (#​9681)
  • deps: bump shipmonk/dead-code-detector from 1.1.3 to 1.2.0 in /dev-tools in the shipmonk group across 1 directory (#​9661)
  • deps: update dev-deps (#​9683)
  • deps: upgrade deep-deps for dev-tools (#​9677)
  • fix: PhpUnitAttributesFixer - correctly handle @requires PHPUnit with space-separated version constraint (#​9684)
  • UX: Cache - explicit deprecation for usage of non-handled objects in rules configuration, as they silently fail now; add support for JsonSerializable config values (#​9678)

v3.95.5

Compare Source

  • chore: Cleanup assert() and add more precise Preg::matchAll() return type (#​9667)
  • chore: cleanup GroupImportFixer (#​9671)
  • chore: improve TypeExpression (#​9665)
  • chore: please markdown-lint (#​9659)
  • chore: use more assert calls (#​9666)
  • deps: Allow installation of sebastian/diff:^9.0 (#​9663)
  • deps: bump crate-ci/typos from 1.47.0 to 1.47.2 in /.github/workflows in the all group across 1 directory (#​9662)
  • docs/refactor: clarify bracket types naming (#​5915)
  • fix: Add support for phpunit/phpunit:^13.2 in PhpUnitTestCaseStaticMethodCallsFixer (#​9664)
  • fix: Use AgentDetector to detect presence of AI agent only when @auto format has been selected (#​9658)
  • fix: PhpdocAddMissingParamAnnotationFixer - skip attribute tokens when extracting parameter type (#​9634)
  • fix: StaticPrivateMethodFixer - fix for private constructor and abstract static method (#​9598)
  • refactor: simplified_if_return - applyFix to use slices for token insertion (#​9670)

v3.95.4

Compare Source

  • chore: improve ArrayIndentationFixer (#​9643)
  • chore: improve ClassDefinitionFixer (#​9645)
  • chore: improve ControlCaseStructuresAnalyzer (#​9644)
  • chore: improve NoAliasFunctionsFixer (#​9647)
  • chore: improve NoSuperfluousPhpdocTagsFixer (#​9646)
  • chore: improve PhpUnitTestCaseStaticMethodCallsFixer (#​9649)
  • chore: improve Token (#​9650)
  • chore: improve WorkerException (#​9648)
  • chore: minor updates around PHPStan (#​9651)
  • deps: bump crate-ci/typos from 1.46.2 to 1.47.0 in /.github/workflows in the all group across 1 directory (#​9639)
  • deps: bump PHPStan to 2.2.1 (#​9635)
  • deps: minor upgrades of dev-tools (#​9653)
  • fix: Address credential exposure concern related to using ergebnis/agent-detector for detecting the presence of an AI agent (#​9656)
  • test: improve data providers return types (#​9642)

v3.95.3

Compare Source

  • fix: MultilinePromotedPropertiesFixer - fix for new in initializers (#​9619)
  • fix: PhpdocLineSpanFixer - run after NoSuperfluousPhpdocTagsFixer (#​9615)
  • CI: add generic phpstan/phpstan-deprecation-rules, so usage of old deprecated constants is detected (#​9636)
  • CI: replace PHP 8.6snapshot with nightly in matrix (#​9628)
  • deps: bump crate-ci/typos from 1.46.0 to 1.46.1 in /.github/workflows in the all group across 1 directory (#​9624)
  • deps: bump crate-ci/typos from 1.46.1 to 1.46.2 in /.github/workflows in the all group across 1 directory (#​9631)
  • deps: bump ergebnis/composer-normalize from 2.51.0 to 2.52.0 in /dev-tools (#​9627)
  • deps: bump the phpstan group in /dev-tools with 2 updates (#​9626)
  • deps: upgrade misc deps (#​9621)
  • refactor: AttributeBlockNoSpacesFixer - no need for loop when we already know bracket indices (#​9446)

v3.95.2

Compare Source

  • fix: MethodArgumentSpaceFixer - avoid collapsing multi-line arguments (#​9559)
  • fix: ModifierKeywordsFixer - do not break PHP syntax for closures in constant expressions (#​9596)
  • fix: NoRedundantReadonlyPropertyFixer - fix TypeError when trait contains anonymous class (#​9457)
  • fix: PhpUnitAttributesFixer - add missing handling of CoversMethod and naive handling of CoversTrait (#​9588)
  • fix: TextReporter - always show summary footer (#​9595)
  • deps: bump crate-ci/typos from 1.45.1 to 1.46.0 in /.github/workflows in the all group across 1 directory (#​9605)
  • deps: bump ergebnis/composer-normalize from 2.50.0 to 2.51.0 in /dev-tools (#​9561)
  • deps: bump phpstan/phpstan from 2.1.46 to 2.1.47 in /dev-tools in the phpstan group (#​9560)
  • deps: bump phpstan/phpstan from 2.1.51 to 2.1.52 in /dev-tools in the phpstan group (#​9601)
  • deps: bump PHPUnit patch versions (#​9593)
  • deps: bump shipmonk/dead-code-detector from 1.0.0 to 1.1.0 in /dev-tools in the shipmonk group across 1 directory (#​9569)
  • deps: bump the all group across 1 directory with 2 updates (#​9570)
  • deps: bump the phpstan group across 1 directory with 2 updates (#​9608)
  • deps: update facile-it/paraunit to ^2.11 (#​9589)
  • deps: upgrade PHPUnit in GitHub Actions (#​9577)
  • chore: .gitattributes - export-ignore for logo.md (#​9611)
  • chore: .gitattributes - sort entries (#​9612)
  • chore: Add CS commit to .git-blame-ignore-revs
  • chore: Add CS commit to .git-blame-ignore-revs
  • chore: add tests to PhpdocTagCasingFixerTest (#​9610)
  • chore: cleanup AbstractFopenFlagFixer (#​9592)
  • chore: cleanup BlankLineBetweenImportGroupsFixer (#​9562)
  • chore: cleanup ControlStructureBracesFixer (#​9609)
  • chore: cleanup NoExtraBlankLinesFixer (#​9567)
  • chore: cleanup OrderedImportsFixer (#​9603)
  • chore: cleanup PhpdocSingleLineVarSpacingFixer (#​9591)
  • chore: cleanup PhpdocToReturnTypeFixer (#​9558)
  • chore: CS - apply PhpUnitRequiresConstraintFixer from https://github.com/kubawerlos/php-cs-fixer-custom-fixers (#​9581)
  • chore: CS - apply php_unit_attributes rule (#​9578)
  • chore: ensure consistent @author name per email (#​9606)
  • chore: fix wrong test Attribute (#​9586)
  • chore: infection - define staticAnalysisTool (#​9607)
  • chore: move Codecov config (#​9597)
  • CI: move PHPUnit version management earlier to prevent composer installation phase to run 2 times (#​9587)
  • CI: specify Codecov token (#​9556)
  • CI: use Codecov for code coverage (#​9553)
  • test: NoUnsetCastFixerTest - run any test on PHP >= 8 (#​9585)

v3.95.1

Compare Source

  • fix: TokensAnalyzer - handle T_PUBLIC_SET, T_PROTECTED_SET, T_PRIVATE_SET (#​9696)

v3.95.0

Compare Source

  • feat: Add option remove_existing_declaration to declare_strict_types fixer (#​9384)
  • feat: Add exclude option to phpdoc_types rule (#​9479)
  • feat: introduce 'list-rules' command (#​9512)
  • feat: introduce NoWhitespaceInEmptyArrayFixer (#​8155)
  • feat: Resolve to json format when AI_AGENT environment variable is set (#​9542)
  • feat: @Symfony:risky - add void_return (#​9546)
  • feat: GlobalNamespaceImportFixer - support first-class callable syntax (#​9484)
  • feat: MethodArgumentSpaceFixer - add ensure_single_line_for_single_argument option for on_multiline (#​9504)
  • feat: MultilinePromotedPropertiesFixer - turn multiline promoted properties into singleline when there are fewer than minimum_number_of_parameters (#​9501)
  • feat: PhpdocLineSpanFixer - add function option (#​9439)
  • feat: ReturnAssignmentFixer - skip variables with the named @var tags with new option skip_named_var_tags (#​9464)
  • fix: ArrayPushFixer - do not stop fixing when array_push with 1 argument found (#​9508)
  • fix: BinaryOperatorSpacesFixer - make it works correctly with multiple match cases (#​9470)
  • fix: EchoTagSyntaxFixer - do not break syntax for single line comments (#​9506)
  • fix: PhpUnitTestClassRequiresCoversFixer - do not add @coversNothing to anonymous classes (#​9481)
  • fix: SimplifiedNullReturnFixer - do not remove null from property hook (#​9471)
  • docs: extend docs about exit code (#​9526)
  • docs: StaticLambdaFixer - document example how to prevent conversion (#​9502)
  • DX: change default PHP_CS_FIXER_FAST_LINT_TEST_CASES=1 and run full linting of test cases only on highest and lowest PHP versions in CI (#​9448)
  • chore: add missing test for SetTypeToCastFixer (#​9518)
  • chore: add test for NoMultipleStatementsPerLineFixer (#​9533)
  • chore: add tests for BracesPositionFixer (#​9522)
  • chore: add tests for PsrAutoloadingFixer (#​9541)
  • chore: cleanup MagicConstantCasingFixer (#​9494)
  • chore: cleanup NoNullPropertyInitializationFixer (#​9493)
  • chore: cleanup ClassAttributesSeparationFixer (#​9545)
  • chore: cleanup GeneralAttributeRemoveFixer (#​9520)
  • chore: cleanup GlobalNamespaceImportFixerTest (#​9482)
  • chore: cleanup NoTrailingCommaInSinglelineFixer (#​9537)
  • chore: cleanup OrderedAttributesFixer (#​9521)
  • chore: cleanup PhpUnitExpectationFixer (#​9505)
  • chore: commands cleanup (#​9478)
  • chore: ensure that regex TypeExpression::REGEX_TYPES does not have unnamed capturing group (#​9514)
  • chore: exclude logo.png and composer-dependency-analyser.php from Composer export (#​9516)
  • chore: group dependabot updates for Docker and GitHub Actions (#​9535)
  • chore: improve AbstractPhpUnitFixer (#​9519)
  • chore: improve ArrayPushFixer (#​9515)
  • chore: update FunctionsAnalyzer (#​9483)
  • chore: MbStrFunctionsFixer - remove the never true condition (#​9509)
  • chore: ModernizeStrposFixer - remove the never true conditions (#​9510)
  • chore: NoAliasFunctionsFixer - cleanup invalid set handling (#​9511)
  • CI: add failOnDeprecation="true" to PHPUnit config (#​8935)
  • CI: cleanup jobs (#​9449)
  • CI: configure Dependabot for composite actions (#​9529)
  • CI: do not run issue_8828_c.test on macOS for now (#​9528)
  • CI: fix Dependabot paths (#​9530)
  • CI: more of ubuntu-slim (#​9450)
  • CI: move spelling checks to dedicated workflow (#​9451)
  • deps: bump actions/cache from 4 to 5 in /.github/composite-actions/install-composer-deps (#​9531)
  • deps: bump actions/github-script from 8 to 9 in /.github/composite-actions/setup-php-with-composer-deps (#​9544)
  • deps: bump crate-ci/typos from 1.43.5 to 1.44.0 (#​9476)
  • deps: bump crate-ci/typos from 1.44.0 to 1.45.0 (#​9523)
  • deps: bump docker/build-push-action from 6 to 7 (#​9486)
  • deps: bump docker/login-action from 3 to 4 (#​9477)
  • deps: bump docker/metadata-action from 5 to 6 (#​9474)
  • deps: bump docker/setup-buildx-action from 3 to 4 (#​9475)
  • deps: bump docker/setup-qemu-action from 3 to 4 (#​9472)
  • deps: bump nick-invision/retry from 3 to 4 (#​9491)
  • deps: bump nick-invision/retry from 3 to 4 in /.github/composite-actions/install-composer-deps (#​9532)
  • deps: bump phpstan/phpstan from 2.1.40 to 2.1.42 in /dev-tools in the phpstan group (#​9490)
  • deps: bump phpstan/phpstan from 2.1.42 to 2.1.44 in /dev-tools in the phpstan group (#​9503)
  • deps: bump phpstan/phpstan-symfony from 2.0.14 to 2.0.15 in /dev-tools in the phpstan group (#​9458)
  • deps: bump shipmonk/dead-code-detector from 0.14.1 to 0.15.1 in /dev-tools in the shipmonk group (#​9473)
  • deps: bump shipmonk/dead-code-detector from 0.15.1 to 1.0.0 in /dev-tools in the shipmonk group (#​9543)
  • deps: update PHPStan (#​9452)
  • deps: upgrade deps (#​9527)
  • deps: upgrade PHPUnit patch versions (#​9455)
  • refactor: ConfigurableFixerTemplateFixer - move handling example file from fixing logic to definition (#​9525)
  • refactor: rename PhpdocTypesNoDuplicatesFixer to PhpdocNoDuplicateTypesFixer (#​9381)
  • test: fix CI for Windows (#​9492)
  • test: MethodArgumentSpaceFixer must run before NoTrailingCommaInSinglelineFixer (#​9507)
  • test: use PhpUnitTestCaseStaticMethodCallsFixerTest::testInvalidConfiguration (#​9460)

v3.94.2

Compare Source

  • fix: AttributeBlockNoSpacesFixer - skipping some attributes when multiple present (#​9445)
  • fix: NoUnusedImportsFixer - do not remove constant types (#​9442)
  • fix: PhpdocLineSpanFixer - handle unions and intersections in properties (#​9438)
  • deps: bump crate-ci/typos from 1.43.4 to 1.43.5 (#​9444)

v3.94.1

Compare Source

  • chore: add tests for ArgumentsAnalyzer (#​9422)
  • chore: bump dev-tools to PHP 8.5 (#​9432)
  • chore: ConfigurableFixerTemplateFixer - allow to remove option from computed options (#​9437)
  • chore: fix Tokens::getIterator() type (#​9433)
  • chore: reduce Generator into iterable (#​9435)
  • chore: reduce Iterator->Traversable and Traversable->iterable when possible (#​9434)
  • CI: cleanup sca.yml (#​9430)
  • deps: bump crate-ci/typos from 1.43.2 to 1.43.4 (#​9426)
  • deps: bump ergebnis/composer-normalize from 2.49.0 to 2.50.0 in /dev-tools (#​9427)
  • deps: bump the phpstan group in /dev-tools with 4 updates (#​9425)
  • deps: dependabot group for shipmonk/ (#​9429)
  • docs: switch sets ordering to case-insensitive (#​9423)
  • test: check PHP env in CI jobs (#​9428)

v3.94.0

Compare Source

  • UX: enable parallel runner by default (#​9408)
  • feat: Add option case to phpdoc_line_span fixer (#​9391)
  • feat: PhpdocLineSpanFixer - support docs for classes, trait usages and other code lines (#​8832)
  • feat: VoidReturnFixer - allow to skip lambdas (#​9417)
  • chore: fix comment (#​9404)
  • chore: Linter tests for Schrodinger's validity (#​9398)
  • chore: ModernizeStrposFixer - no need for configuration hooks (#​9419)
  • chore: VoidReturnFixer - better describe exceptions (#​9418)
  • CI: no need for special handling of MacOS (#​9403)
  • CI: run tests using PHPUnit 13 (#​9410)
  • deps: bump crate-ci/typos from 1.42.1 to 1.42.3 (#​9395)
  • deps: bump crate-ci/typos from 1.42.3 to 1.43.2 (#​9405)
  • deps: bump ergebnis/composer-normalize from 2.48.2 to 2.49.0 in /dev-tools (#​9396)
  • deps: bump the phpstan group in /dev-tools with 2 updates (#​9394)
  • deps: upgrade dev-deps (#​9411)
  • DX: use custom name for custom config (#​9402)
  • fix: absolute path in reports (#​9399)
  • fix: indentation for backed enum with multiline assignment (#​9362)
  • fix: Runner - fix occasional sub-process freeze on parallel execution with --stop-on-violation (#​9393)
  • fix: NoUnreachableDefaultArgumentValueFixer - fix for closures (#​9409)
  • fix: UseArrowFunctionsFixer - do not convert closure in attribute (#​9416)
  • test: create PHP 8.5 risky compat test (#​9420)
  • UX: Do not run interactive configurator when rules are passed explicitly (#​9378)

v3.93.1

Compare Source

  • fix: ErrorOutput - do not show "begin diff"/"end diff" when there is no diff (#​9361)
  • fix: UseArrowFunctionsFixer - don't convert lambda with use($var) clause if it includes another file (#​9389)
  • DX: use null coalescing operator (#​9380)

v3.93.0

Compare Source

  • feat: add ModernSerializationMethodsFixer (#​9108)
  • feat: Add NoRedundantReadonlyPropertyFixer (#​9339)
  • feat: add PhpdocTypesNoDuplicatesFixer (#​9312)
  • feat: do not suggest config file creation if config explicitly skipped with --config=- (#​9379)
  • feat: improve handling of @see tags in FullyQualifiedStrictTypesFixer (#​9350)
  • feat: PER attribute block no spaces (#​9264)
  • feat: php_unit_test_case_static_method_calls - change default 'call_type' to 'this' for v4 (#​9328)
  • feat: protected_to_private - add to@Symfony set (#​9303)
  • feat: PSR/PER-CS - adjust braces_position rule (#​9329)
  • feat: remove php_unit_test_case_static_method_calls from PHPUnit sets (#​9341)
  • feat: @PHP7x0MigrationRisky - update configuration of RandomApiMigrationFixer to match it's newly updated v4 defaults (#​9368)
  • feat: @Symfony:risky - extend set with modern_serialization_methods (#​9366)
  • feat: @Symfony:risky - extend set with static_lambda (#​9365)
  • feat: @Symfony - enable no_unneeded_control_parentheses.statements.negative_instanceof (#​9336)
  • feat: @Symfony - extend set with no_useless_else (#​9363)
  • feat: @Symfony - extend set with no_useless_return (#​9364)
  • feat: RandomApiMigrationFixer - allow to convert mt_getrandmax and mt_srand (#​9367)
  • fix: properly expose memory usage while running parallel mode (#​9352)
  • fix: ModifierKeywordsFixer - closure in attribute (#​9358)
  • fix: NoUselessElseFixer - handle conditional symbol declarations (#​9347)
  • fix: OrderedClassElementsFixer - closure in attribute (#​9357)
  • fix: PhpUnitAttributesFixer - do not add for annotation @testWith when attribute TestWith already present (#​9354)
  • refactor: add base key-existence check for cross-process communication in parallel runner (#​9360)
  • refactor: FixerDocumentGenerator - limit the scope to create rule instance in future mode only (#​9359)
  • test: fix compatibility towards Symfony 8 (#​9370)
  • test: update PHP 8.5 compat test to cover closure in attribute and prevent conversion to empty arrow function (#​9373)
  • chore: add clarifying @return annotations to Config (#​9337)
  • chore: fix assign.propertyType error from PHPStan (#​9332)
  • chore: PHPUnit sets - cleanup test, update docs/comments (#​9342)
  • chore: simplify phpstan:baseline command (#​9346)
  • deps: bump crate-ci/typos from 1.41.0 to 1.42.0 (#​9338)
  • deps: bump crate-ci/typos from 1.42.0 to 1.42.1 (#​9376)
  • deps: bump dev deps (#​9369)
  • deps: bump the phpstan group in /dev-tools with 3 updates (#​9375)
  • docs: show default value for future mode (#​9355)
  • DX: add env for easier finding which fixer break a PHP syntax (#​9356)

v3.92.5

Compare Source

  • fix: CombineConsecutiveUnsetsFixer - proper handling of trailing comma (#​9335)
  • chore: cleanup self-config file (#​9324)
  • chore: fix variable.undefined error from PHPStan (#​9330)
  • deps: bump crate-ci/typos from 1.40.0 to 1.41.0 (#​9325)
  • docs: extend Q&A for creating the rule (#​9331)

v3.92.4

Compare Source

  • fix: ComposerJsonReader - handle more syntaxes (#​9327)
  • UX: Runner/Parallel/Process - friendly message when tmp dir not writable (#​9319)
  • docs: fix RST links (#​9321)
  • DX: internal commands for working with tokens (#​9251)
  • chore: Add CS commit to .git-blame-ignore-revs
  • chore: apply trailing_comma_in_multiline: elements.arguments (#​9314)
  • deps: upgrade dev-deps (#​9318)

v3.92.3

Compare Source

  • fix: using Rule Customisation Policy with parallel runner (#​9309)
  • chore: phpstan - cover .php-cs-fixer.dist.php (#​9311)
  • chore: .php-cs-fixer.dist.php - drop wrongly called ignoreVCSIgnored (#​9310)

v3.92.2

Compare Source

  • fix: let @php-cs-fixer-ignore accept custom fixer names (#​9306)
  • chore: introduce PHP_CS_FIXER_IGNORE_MISMATCHED_RULES_EXCEPTIONS (#​9307)

v3.92.1

Compare Source

  • chore: update php-compatibility config (#​9302)
  • deps: bump actions/cache from 4 to 5 (#​9295)
  • deps: bump phpstan/phpstan-phpunit from 2.0.9 to 2.0.10 in /dev-tools in the phpstan group (#​9293)
  • deps: bump shipmonk/phpstan-baseline-per-identifier from 2.2.0 to 2.3.0 in /dev-tools (#​9294)
  • docs: update README.md (#​9277)
  • DX: make all testFix* methods have no more than 4 parameters (#​9298)
  • DX: make all testFix* methods have second parameter $input (#​9297)
  • DX: rename parameter $config to $configuration (#​9299)
  • DX: restrict testFix* parameter names (#​9301)
  • DX: use WhitespacesFixerConfig in tests (#​9300)
  • fix: describe - skip listing automated rules, as cannot determine them in projects (#​9304)
  • test: PHPUnit sets - check that set is providing proper target for rules (#​9296)
  • test: ProjectCodeTest::testExpectedInputOrder - move checks for testFix... methods (#​9291)

v3.92.0

Compare Source

  • feat: exception for rules via @php-cs-fixer-ignore annotation (#​9280)
  • feat: exception for rules via Rule Customisation Policy (#​9107)
  • feat: PhpUnitTestCaseStaticMethodCallsFixer - add handling of getStubBuilder (#​9276)
  • feat: PhpUnitTestCaseStaticMethodCallsFixer - add target option (#​8498)
  • chore: '.php-cs-fixer.dist.php' - remove no longer needed rule, 'expectedDeprecation' annotation does not exist for long time (#​9266)
  • chore: fix arguments.count error from PHPStan (#​9258)
  • chore: fix generator.valueType error from PHPStan (#​9259)
  • chore: fix plus.*NonNumeric errors from PHPStan (#​9260)
  • chore: Runner - better input types handling (#​9286)
  • chore: watch out for non-final classes (#​9262)
  • chore: Config::getFinder() - fix typehinting (#​9288)
  • deps: bump alpine from 3.22 to 3.23 (#​9269)
  • deps: bump phpcompatibility/php-compatibility from 10.0.0-alpha1 to 10.0.0-alpha2 in /dev-tools (#​9271)
  • deps: bump the phpstan group in /dev-tools with 3 updates (#​9270)
  • deps: dev-tools - upgrade deep deps (#​9272)
  • docs: exception for rules in dedicated doc files, for easier discoverability (#​9281)
  • docs: upgrade docs to not use legacy set (#​9282)
  • DX: make all testFix* methods have first parameter $expected (#​9289)
  • refactor: fix violation of 'no_useless_concat_operator' (#​9267)
  • refactor: ProjectCodeTest - refactor testExpectedInputOrder test (#​9290)
  • Revert (partially) "feat: Finder to find dot-files by default in v4/future-mode (#​9187)" (#​9287)
  • test: RuleSetTest - check against non-deprecated variant of PHPUnit sets (#​9265)
  • UX: exception for rules via Rule Customisation Policy - better error message for wrong customisers (#​9279)
  • UX: exception for rules via Rule Customisation Policy - prevent policy without version (#​9278)

v3.91.3

Compare Source

  • Revert "feat: Symfony - add stringable_for_to_string to set" (#​9268)

v3.91.2

Compare Source

  • fix: fix support call-site generic variance (#​9253)
  • chore: adjust autoloader to exclude all Internal classes in classmap (#​9252)
  • CI: set PHP_CS_FIXER_IGNORE_ENV for PHP 8.6 (#​9254)

v3.91.1

Compare Source

  • UX: show warning on PHP-mismatch only for 'fix' and 'check' commands (#​9243)
  • docs: unify rule/ruleset doc tags (#​9250)
  • refactor: don't expose internal commands/rules (#​9245)
  • refactor: memoize fixer names (#​9219)
  • refactor: use custom set for internal rules (#​9247)
  • test: show that describe command works well for custom sets (#​9246)

v3.91.0

Compare Source

  • UX: init command (#​9215)
  • feat: PHP 8.5 compatibility support (#​9234)
  • feat: Add StringableForToStringFixer (#​9218)
  • feat: support call-site generic variance (#​9212)
  • feat: Symfony - add stringable_for_to_string to set (#​9235)
  • chore: do not mark NamespaceAnalysis as internal, because it's part of public API interface (#​9193)
  • chore: ExampleRuleset - improve test fixture name (#​9214)
  • chore: traits - require interfaces or base classes (#​9086)
  • CI: Add PHPStan rule to validate public API surface completeness (#​9196)
  • CI: auto-select PHP_MAX for special jobs (#​9231)
  • CI: drop duplicated PHP 8.4 jobs (#​9229)
  • CI: fix SCA after Symfony 7.4.0 release (#​9226)
  • CI: no more need for solving PHP 8.4 deprecations in /vendor/ anymore (#​9230)
  • CI: switch trivial jobs to ubuntu-slim (#​9232)
  • CI: upgrade .php-cs-fixer.php-highest.php to fully reflect PHP 8.4 (#​9233)
  • deps: bump actions/checkout from 5 to 6 (#​9210)
  • deps: bump crate-ci/typos from 1.39.2 to 1.40.0 (#​9237)
  • deps: bump shipmonk/composer-dependency-analyser from 1.8.3 to 1.8.4 in /dev-tools (#​9238)
  • deps: bump shipmonk/dead-code-detector from 0.13.5 to 0.14.0 in /dev-tools (#​9239)
  • deps: bump Symfony v8 to RC (#​9221)
  • deps: bump Symfony v8 to stable (#​9222)
  • deps: update xdebug (#​9228)
  • fix: move config template to non-excluded folder (#​9241)
  • fix: DeclareStrictTypesFixer - do not duplicate strict_types if it is already present, with other directive (#​9225)
  • fix: FullyQualifiedStrictTypesFixer - fix crash on T_OPEN_TAG_WITH_ECHO (#​9217)
  • test: allow CI to define both, numeric and non-numeric PHP versions/builds (#​9236)
  • test: do not allow to fail PHP 8.5 job (#​9224)
  • test: let's not dance on the edge of the JIT stack limit (#​9211)
  • test: run smoke tests on any OS (#​9242)
  • test: update PHP 8.5 compatibility test (#​9223)

v3.90.0

Compare Source

  • feat: always have @PHPXxYMigration(:risky) sets for supported PHP versions (#​9207)
  • feat: Finder to find dot-files by default in v4/future-mode (#​9187)
  • fix: manage the space between operator and version on Composer JSON reader (#​9203)
  • fix: PhpdocAnnotationWithoutDotFixer lowercases @param type when description starts with all-uppercase word (#​9169)
  • UX: groom warning of PHP mismatch for runtime vs target project minimum supported version (#​9202)
  • UX: Rules override warning (#​9188)
  • UX: describe command - allow to visualize Set as tree (#​9179)
  • docs: rework .php-cs-fixer.php local config file docs (#​9185)
  • docs: update Set descriptions (#​9183)
  • chore: Declare support for Symfony 8 (#​9172)
  • chore: add missing v4 TODOs (#​9197)
  • chore: mark one remaining Analyzer to become internal (#​9194)
  • chore: mark v2 leftovers with v4 TODO (#​9181)
  • chore: no need for deprecation trigger in internal DataProviderAnalysis (#​9192)
  • deps: bump crate-ci/typos from 1.38.1 to 1.39.0 (#​9175)
  • deps: bump crate-ci/typos from 1.39.0 to 1.39.2 (#​9205)
  • deps: bump the phpstan group in /dev-tools with 2 updates (#​9204)
  • DX: different name for special configs (#​9180)
  • DX: improve types for testInvalidConfiguration methods (#​9206)
  • DX: describe command - allow to expose rules without sets via @- alias (#​9178)
  • refactor: move assertions from tearDown into assertPostConditions to fix Test code or tested code did not remove its own error handlers warning (#​9182)
  • refactor: prevent tests to use actual repository .php-cs-fixer.dist.php file (#​9177)
  • test: add more test(s) for ComposerJsonReader (#​9200)
  • test: ensure calling parent method from hook-alike methods (#​9184)

v3.89.2

Compare Source

  • fix: NoUnneededBracesFixer - do not crash on multiline group import (#​9160)
  • chore: Standardize repository to use British English spelling (#​9154)
  • CI: ensure enforced Symfony version is installed (#​9174)
  • deps: bump php-coveralls to v2.9 (#​9173)
  • refactor: FixerDocumentGenerator::getSetsOfRule - cache resolved sets (#​9170)
  • refactor: FixerDocumentGenerator::getSetsOfRule - use cache (#​9171)

v3.89.1

Compare Source

  • fix: ComposerJsonReader - fix handling asterisk (#​9166)
  • docs: cookbook - update to mention custom fixer option (#​9164)
  • DX: add links in cookbook_fixers.rst (#​9162)
  • deps: upgrade phpcompatibility/* to alpha of next MAJOR instead of using dev branch, plus other minor upgrades (#​9163)

v3.89.0

Compare Source

  • feat: autofix "no-return" phpdoc type to "never" (#​9073)
  • feat: support keeping strict_types=0 in DeclareStrictTypesFixer (#​9121)
  • feat: NoUnneededBracesFixer - remove unneeded braces from imports (#​9118)
  • fix: FullyQualifiedStrictTypesFixer - replacing the real FQCN with a non-existent one (#​8962)
  • fix: PhpdocToCommentFixer on property hooks (#​9123)
  • fix: PhpUnitMethodCasingFixer to not cause a duplicate method declaration (#​9124)
  • fix: StaticLambdaFixer - do not make function static when it contains anonymous class having $this in the constructor (#​9088)
  • fix: UseArrowFunctionsFixer - do not produce two consecutive whitespace tokens (#​9151)
  • UX: better gitlab reporting - add content field (#​9152)
  • UX: better gitlab reporting - more user-friendly description field (#​9141)
  • UX: better gitlab reporting for location.lines (#​9149)
  • UX: Warn if executed php version is higher than the minimum php version defined in composer.json (#​9134)
  • chore: add UX title pattern (#​9132)
  • chore: explicitly use php interpreter for paraunit (#​9126)
  • chore: extend composer scripts (#​9127)
  • chore: fix shellcheck installation for Darwin (#​9125)
  • chore: replace PHPDocs with assert calls (#​9144)
  • deps: bump crate-ci/typos from 1.36.3 to 1.38.1 (#​9136)
  • deps: bump phpstan/phpstan from 2.1.29 to 2.1.31 in /dev-tools in the phpstan group (#​9129)
  • deps: bump shipmonk/dead-code-detector from 0.13.3 to 0.13.4 in /dev-tools (#​9135)
  • deps: bump shipmonk/dead-code-detector from 0.13.4 to 0.13.5 in /dev-tools (#​9146)
  • deps: bump the phpstan group across 1 directory with 2 updates (#​9101)
  • deps: use shipmonk/composer-dependency-analyser instead of icanhazstring/composer-unused and maglnet/composer-require-checker (#​9106)
  • docs: fix docs for @autoPHPUnitMigration:riskyset (#​9147)
  • docs: improve descriptions for NoTrailingWhitespace* fixers (#​9117)
  • docs: more explicit docs on --rules (#​9114)
  • docs: update usage documentation for describe --expand and @ (#​9119)
  • DX: Fix composer qa script (#​9138)
  • refactor: --option value => --option=value (#​9131)
  • test: Fix result randomness in RunnerTest for MacOS (#​9139)

v3.88.2

Compare Source

  • docs: describe command - allow to describe config in use (#​9103)
  • docs: describe command - allow to expand sets (#​9104)

v3.88.1

Compare Source

  • chore: use accidentally missing @auto:risky (#​9102)
  • deps: bump crate-ci/typos from 1.36.2 to 1.36.3 (#​9099)
  • deps: bump icanhazstring/composer-unused from 0.9.4 to 0.9.5 in /dev-tools (#​9100)
  • DX: Ability to run yamllint locally (#​9093)

v3.88.0

Compare Source

  • feat: Support custom rulesets (#​6083)
  • feat: introduce @auto, @auto:risky sets (#​9090)
  • feat: introduce @autoPHPMigration, @autoPHPMigration:risky, @autoPHPUnitMigration:risky sets (#​9068)
  • feat: start using new defaults for rules under future mode (#​9020)
  • feat: rename rule sets from MAJORMINOR and MAJOR.MINOR into MAJORxMINOR (#​9005)
  • feat: rename visibility_required into modifier_keywords (#​8995)
  • feat: symfony ruleset: Add @const to phpdoc_no_alias_tag (#​9016)
  • fix: BlankLinesBeforeNamespaceFixer - handle namespace without newline before (#​9059)
  • docs: fix typo (#​9060)
  • docs: update CONTRIBUTING.md (#​9074)
  • docs: update README for updated PHP/PHPUnit set names (#​9070)
  • DX: Allow development on PHP 8.5 (#​9092)
  • chore: enforce list via array_values() (#​9054)
  • chore: ErrorOutput - line is optional (#​9047)
  • chore: fix cs in entry point file (#​9064)
  • chore: fix CS, somehow it missed the CI of .php-cs-fixer.well-defined-arrays.php (#​8987)
  • chore: fix some argument.type errors (#​9056)
  • chore: groom Automatic rulesets code (#​9091)
  • chore: phpstan - do not ignore all internal usage errors (#​9063)
  • chore: replace wrong class-string usages (#​8968)
  • chore: getcwd() - ignore false return value (#​9057)
  • chore: ReporterFactory - use class-string type (#​9055)
  • CI: check for typos (#​9048)
  • CI: don't prevent the build when remote coverage reporting service is down (#​9095)
  • CI: fix smoke tests after #​9005 (#​9061)
  • CI: fix typos in CHANGELOG.md (#​9052)
  • CI: mutation tests - disable github annotations (#​9062)
  • CI: Test docs generation only once per CI pipeline (#​9089)
  • CI: push event only for master branch (#​9046)
  • CI: push event only for master branch (#​9050)
  • deps: bump box version (#​9042)
  • deps: bump ergebnis/composer-normalize from 2.48.1 to 2.48.2 in /dev-tools (#​9045)
  • deps: bump phpstan/phpstan from 2.1.25 to 2.1.28 in /dev-tools in the phpstan group (#​9072)
  • deps: unify alpine version for PHP 8.4 (#​9077)
  • deps: update phpstan and phpstan-baseline-per-identifier (#​9051)
  • deps: update squizlabs/php_codesniffer to v4.0 and other related packages (#​9075)
  • deps: upgrade alpine wherever possible (#​9078)
  • deps: upgrade infection/infection to ^0.31.0 (#​9079)
  • refactor: introduce concept of AutomaticRuleSet (#​9067)
  • refactor: rename RuleSetDescriptionInterface into RuleSetDefinitionInterface (#​9094)
  • test: ensure alpine version same between Dockerfile and compose.yaml (#​9076)
  • test: ensure alpine version same in compose.yaml and release.yml (#​9071)
  • test: extend tests to cover new migration rule set names (#​9069)
  • test: improve testing that objects cannot be serialized/unserialized (#​9049)

v3.87.2

Compare Source

  • fix: phpdoc_to_param_type, phpdoc_to_return_type, phpdoc_to_property_type - handle type aliasing before handling PHP version (#​9031)
  • docs: unify docs around deprecated sets (#​9036)
  • chore: fix typos (#​9022)
  • chore: provide few missing types for callbacks (#​9026)
  • deps: bump actions/stale from 9 to 10 (#​9029)
  • deps: pin checkbashisms and shellcheck to stable URL with pinned version (#​9032)
  • DX: suggest --sequential when facing fixing error (#​9023)
  • refactor: Future - centralize class for future-looking logic (#​9021)
  • test: Mark DocumentationCommandTest::testGeneratingDocumentation() as large test (#​9028)

v3.87.1

Compare Source

  • chore: AbstractProxyFixer - require non-empty list of proxy fixers (#​9010)
  • deps: update justinrainbow/json-schema (#​9019)

v3.87.0

Compare Source

  • feat: add PhpdocTagNoNamedArgumentsFixer (#​8906)
  • feat: deprecate using config from passed 'path' CLI argument (#​8923)
  • feat: introduce @PHP85Migration set (#​8941)
  • feat: upgrade @PhpCsFixer set towards new defaults of selected rules (#​8981)
  • fix: PhpdocOrderFixer - do not allow duplicated tags in configuration (#​8945)
  • fix: PhpdocOrderFixer when phpstan- / psalm- order is specified (#​8853)
  • docs: README.md updates (#​9013)
  • docs: update README.md (#​9015)
  • docs: update README.md and CONTRIBUTING.md (#​8974)
  • DX: remove methods for kind checks (#​8954)
  • DX: unify class/interface/trait naming (#​8957)
  • chore: Add CS commit to .git-blame-ignore-revs
  • chore: Add TODO for ENUM conversion in ProgressOutputType (#​8991)
  • chore: always use JSON_THROW_ON_ERROR (#​8993)
  • chore: apply (partially) multiline_string_to_heredoc (#​9002)
  • chore: apply phpdoc_tag_no_named_arguments (#​8969)
  • chore: configure phpdoc_tag_no_named_arguments (#​8970)
  • chore: convert private methods to constants (#​8976)
  • chore: deprecate Annotation::getTagsWithTypes in favour of TAGS_WITH_TYPES constant (#​8977)
  • chore: exclude files in .gitattributes (#​8960)
  • chore: extract token types for PHPStan (#​8925)
  • chore: handle fixer options without allowed types defined (#​8973)
  • chore: ignore deprecations in token_get_all (#​8963)
  • chore: minor CS fixes (#​8979)
  • chore: PhpdocTagNoNamedArgumentsFixer - better example (#​8971)
  • chore: PHPUnit - enforce no memory_limit (#​8940)
  • chore: remove not-needed reset-call (#​9014)
  • chore: revert wrong _PhpTokenArray usages (#​8947)
  • chore: rework ci-integration.sh (#​8989)
  • chore: sort .gitattributes (#​8966)
  • chore: unify entries in .gitignore (#​8982)
  • chore: unify env var FAST_LINT_TEST_CASES into PHP_CS_FIXER_FAST_LINT_TEST_CASES (#​8992)
  • chore: use get_debug_type and ::class in exception messages (#​9006)
  • chore: use non-empty-list where appropriate (#​8972)
  • chore: AbstractPhpdocTypesFixer - remove $tags property (#​8980)
  • chore: CheckCommand - use regex instead of explode & substr (#​8936)
  • chore: ClassAttributesSeparationFixer - improve code (#​8950)
  • chore: EregToPregFixer - use constant instead of static property (#​8978)
  • chore: FullyQualifiedStrictTypesFixer - ensure matching number of opening/closing braces (#​9009)
  • chore: OrderedClassElementsFixer - use private method instead of anonymous function (#​8931)
  • chore: PhpdocParamOrderFixer - improve/simplify code (#​9012)
  • chore: PhpUnitDedicateAssertFixer - improve code for phpstan (#​9011)
  • chore: Tokens::offsetSet - explicit validation of input (#​9004)
  • chore: Tokens - override nullability of SplFixedArray (#​9001)
  • refactor: add DocBlockAnnotation trait (#​8953)
  • refactor: PhpdocOrderFixer - calculate order only once (#​8944)
  • CI: add vendor/bin/phpunit --check-php-configuration (#​8934)
  • CI: more self-fixing checks on lowest/highest PHP (#​8943)
  • CI: Re-enable Paraunit in CI under PHP 8.5 (#​8964)
  • CI: update checkbashisms (#​8951)
  • test: extend ProjectCodeTest to check classy names in tests too (#​8959)
  • test: split test so more of them can run under Windows (#​8986)
  • test: TypeDeclarationSpacesFixer - demonstrate PHP 8.3 related config doesn't harm older envs (#​8999)
  • test: update pipe operator tests after pipe & arrow function combination was prohibited (#​8990)
  • test: NoUnneededControlParenthesesFixer - add tests for "clone with" (#​8937)
  • test: PhpdocNoAliasTagFixerTest - add test for @const to @var (#​8998)
  • CS: re-apply rules (#​8988)
  • deps: bump actions/checkout from 4 to 5 (#​8938)
  • deps: bump shipmonk/dead-code-detector from 0.13.1 to 0.13.2 in /dev-tools (#​8939)
  • deps: drop support for justinrainbow/json-schema:^5 (#​8984)
  • deps: minor upgrades (#​8983)
  • deps: remove php-cs-fixer/accessible-object (#​8948)
  • deps: update dev-tools (#​9007)

v3.86.0

Compare Source

  • feat: console application - add completion support (#​8887)
  • feat: introduce PER-CS3.0 rulsets (#​8841)
  • feat: update @Symfony and @PhpCsFixer sets (#​8930)
  • feat: NoSuperfluousPhpdocTagsFixer - support multiline array shapes (#​8903)
  • fix: PhpdocToParamTypeFixerTest - handle types_map for union-types (#​8926)
  • chore: AbstractTransformerTestCase - better virtual type naming (#​8927)
  • chore: add TODO for v4 (#​8912)
  • chore: do not call Reflection*::setAccessible() in PHP >= 8.1 (#​8907)
  • chore: document .env.example (#​8901)
  • chore: fix @todo annotation casing (#​8921)
  • chore: switch to official checkstyle.xsd (#​8910)
  • chore: unify future default of after_heredoc (#​8924)
  • chore: @phpstan-ignore for php version check (#​8920)
  • chore: PhpUnitTestAnnotationFixer - use foreach instead of for (#​8911)
  • CI: allow PHP 8.5 for failure, till it's officially released and we get the stable support (#​8928)
  • ci: run tests under 8.5 via PHPUnit, as ParaUnit failing (#​8933)
  • CI: temporarily skip problematic tests under Sf v8 (#​8919)
  • deps: bump icanhazstring/composer-unused from 0.9.3 to 0.9.4 in /dev-tools (#​8905)
  • deps: update and bump dev-tools/composer (#​8915)
  • docs: extend FullOpeningTagFixer samples (#​8913)
  • docs: extend OperatorLinebreakFixer samples (#​8914)
  • docs: more explicit msg for stop using deprecated code (#​8922)
  • DX: .gitignore - ignore php-cs-fixer.cache, as it's existence is possible when using env var (#​8929)

v3.85.1

Compare Source

v3.85.0

Compare Source

  • feat: ArrayIndentationFixer - handle closures inside attributes (#​8888)
  • feat: NullableTypeDeclarationFixer - support final promoted properties (#​8885)
  • feat: OperatorLinebreakFixer - support pipe operator (#​8891)
  • feat: PhpdocTypesFixer - support multiline array shapes (#​8893)
  • fix: always reach 100% of checked files (#​8861)
  • fix: BracesPositionFixer - handle property hooks correctly (#​8886)
  • fix: NullableTypeDeclarationFixer - handle abstract and final properties (#​8876)
  • fix: PhpdocLineSpanFixer - handle promoted properties (#​8897)
  • fix: PhpUnitDataProviderNameFixer - fix for multiple providers defined by attributes for one test method (#​8849)
  • fix: TernaryOperatorSpacesFixer - handle instanceof static (#​8879)
  • fix: TypeDeclarationSpacesFixer - handle asymmetric visibility and final properties (#​8900)
  • chore: add initial PHP 8.5 integration test (#​8871)
  • chore: add tests for public API methods (#​8895)
  • chore: apply changes from PhpdocTypesFixer for multiline array shapes (#​8894)
  • chore: baseline files without error count (#​8870)
  • chore: cleanup PhpCsFixer\DocBlock\Annotation (#​8892)
  • chore: Command name/descriptions - use attribute and static properties (#​8862)
  • chore: Commands - unify way to define help content (#​8881)
  • chore: ConfigurationResolver - add few missing v4 TODOs (#​8882)
  • chore: fix booleanNot.exprNotBoolean errors (#​8869)
  • chore: fix/optimize some phpdocs (#​8889)
  • chore: more unification of PHP CS Fixer naming (#​8854)
  • chore: PHPStan baseline - use shipmonk/phpstan-baseline-per-identifier (#​8844)
  • chore: remove dead code (#​8896)
  • chore: remove unused constants (#​8864)
  • chore: remove useless @var annotations (#​8867)
  • chore: simplify ClassDefinitionFixer (#​8868)
  • chore: unify usage of image versions to not mention minor (#​8860)
  • chore: update PHPStan (#​8898)
  • chore: update PHPStan extension for Preg::match (#​8872)
  • chore: wrong return values in ErrorsManager (#​8863)
  • chore: OrderedInterfacesFixer - make code more PHPStan friendly (#​8866)
  • chore: Token - add @phpstan-assert-if-true (#​8865)
  • deps: bump phpstan/phpstan from 2.1.17 to 2.1.18 in /dev-tools in the phpstan group (#​8859)
  • deps: bump the phpstan group in /dev-tools with 4 updates (#​8890)
  • docs: better document deprecated rule sets (#​8878)
  • docs: cleanup docs for PHP 7 (#​8873)
  • docs: cleanup docs for PHP < 7.4 (#​8855)
  • docs: ListSetsCommand,FixCommand - document possible formats in Command's definitions (#​8880)
  • DX: Explicitly prevent touching non-monolithic files (#​6517)

v3.84.0

Compare Source

  • feat: Introduce NoUselessPrintfFixer (#​8820)
  • feat: CastSpacesFixer - support (void) cast (#​8851)
  • feat: NewExpressionParenthesesFixer - add to PHP84MigrationSet (#​8788)
  • feat: VisibilityRequiredFixer - support final promoted properties (#​8835)
  • fix: PhpdocToParamTypeFixer - do not convert types from phpstan-type, phpstan-import-type, psalm-type and psalm-import-type (#​8842)
  • fix: PhpdocToPropertyTypeFixer - do not convert types from phpstan-type, phpstan-import-type, psalm-type and psalm-import-type (#​8847)
  • fix: PhpdocToReturnTypeFixer - do not convert types from phpstan-type, phpstan-import-type, psalm-type and psalm-import-type (#​8846)
  • chore: introduce FCT for few missing tokens (#​8845)
  • chore: remove useless static variables for const content (#​8836)
  • chore: simplify isGivenKind/equals/equalsAll calls (#​8843)
  • docs: Support for new PHP version (#​8780)

v3.83.0

Compare Source

  • feat: Suppress enable parallel runner message when only 1 core is available (#​8833)
  • fix: BracesPositionFixer - fix performance issue for massive files with CT::T_CURLY_CLOSE (#​8830)
  • fix: NoUnreachableDefaultArgumentValueFixer - do not crash on property hook (#​8838)
  • chore: Add CS commit to .git-blame-ignore-revs
  • chore: apply native_constant_invocation for build-in consts (#​8837)
  • chore: configure native_constant_invocation (#​8840)
  • chore: early compat check with Symfony 8 (#​8827)
  • chore: FullyQualifiedStrictTypesFixer - reduce function calls (#​8834)
  • CI: mark jobs allow-to-fail declarative, instead of imperative check (#​8829)

v3.82.2

Compare Source

  • fix: ClassAttributesSeparationFixer - handle method get aliased in trait import (#​8822)
  • fix: LowercaseStaticReferenceFixer - do not touch enum's cases (#​8824)
  • fix: StatementIndentationFixer - multi constant statement containing array (#​8825)
  • fix: VisibilityRequiredFixer - handle promoted property with visibility and reference, but without type (#​8823)

v3.82.1

Compare Source

  • fix: OrderedClassElementsFixer - handle property hooks (#​8817)
  • fix: SingleClassElementPerStatementFixer - fix for property hooks (#​8816)

v3.82.0

Compare Source

  • chore: cleanup FCTTest (#​8808)
  • chore: PhpdocOrderFixer.php - CPU optimization (#​8812)
  • deps: update box (#​8795)
  • docs: fix whitespace around code examples and reference sections in rules' docs (#​8810)
  • feat: MagicConstantCasingFixer - support __PROPERTY__ (#​8809)
  • feat: PhpUnitDataProviderNameFixer - support data providers defined by both annotation and attribute for the same test (#​8811)
  • fix: PhpdocToParamTypeFixer - always handle reference in PHPDoc (#​8813)

v3.81.0

Compare Source

  • feat: VisibilityRequiredFixer - handle more than only the first promoted property (#​8801)
  • fix: BracesPositionFixer - do not crash when variable is terminated by PHP close tag (#​8804)
  • fix: PhpUnitDataProviderMethodOrderFixer - handle data provider defined by both annotation and attribute (#​8805)
  • fix: PhpUnitInternalClassFixer - skip adding @internal on instantiation of anonymous classes (#​8807)
  • fix: VisibilityRequiredFixer - handle promoted parameter passed by reference (#​8799)
  • chore: add automatically to milestone "PHP 8.5 initial compatibility" if label is "topic/PHP8.5" (#​8806)
  • chore: fail "Deployment checks" if any job from tests failed (#​8792)
  • docs: update docs about --allow-unsupported-php-version (#​8796)

v3.80.0

Compare Source

  • feat: PHP 8.4 compatibility support (#​8300)

v3.79.0

Compare Source

  • chore: VisibilityRequiredFixerTest - run tests in correct PHP version (#​8790)
  • feat: BracesPositionFixer - do not touch one-line properties with hooks (#​8785)
  • feat: PhpUnitDataProvider(.+)Fixer - support attributes (#​8197)

v3.78.1

Compare Source

  • fix: VisibilityRequiredFixer - do not add public incorrectly (#​8787)

v3.78.0

Compare Source

  • chore: VisibilityRequiredFixer - document behaviour for asymmetric visibility with only set-visibility (#​8783)
  • feat: BracesPositionFixer - support property hooks (#​8782)
  • feat: VisibilityRequiredFixer - support promoted property without visibility (#​8773)
  • fix: NativeFunctionInvocationFixer - fix global function set called in array key (#​8568)
  • fix: NoBreakCommentFixer - handle function having return type (#​8767)
  • fix: StatementIndentationFixer - handle functions set and get (like property hooks, but not) (#​8576)
  • fix: StaticPrivateMethodFixer - handle nested calls (#​8768)

v3.77.0

Compare Source

  • chore: add automatically to milestone "PHP 8.4 initial compatibility" if label is "topic/PHP8.4" (#​8770)
  • chore: Add CS commit to .git-blame-ignore-revs
  • chore: fix adding automatically to milestone "PHP 8.4 initial compatibility" if label is "topic/PHP8.4" (#​8775)
  • chore: fix adding automatically to milestone "PHP 8.4 initial compatibility" if label is "topic/PHP8.4" (#​8776)
  • chore: move all indicators to analyzers (#​8772)
  • chore: move PHP-compat integration tests (#​8781)
  • chore: partially apply NoExtraBlankLinesFixer:tokens.comma (#​8762)
  • chore: reconfigure phpdoc_order in local config (#​8220)
  • feat: PhpdocOrderFixer - extend support for phpstan and psalm annotations (#​8777)
  • feat: support anonymous classes extending TestCase in PHPUnit fixers (#​8707)
  • feat: CommentToPhpdocFixer and PhpdocToCommentFixer - support asymmetric visibility (#​8774)
  • feat: NoEmptyStatementFixer - support abstract property hooks (#​8766)
  • feat: NullableTypeDeclarationForDefaultNullValueFixer - support asymmetric visibility in the constructor (#​8604)
  • feat: ProtectedToPrivateFixer - add support for promoted properties (#​8608)
  • fix: PhpUnitAttributesFixer - correctly remove annotations when configured ['keep_annotations' => false] (#​8577)
  • fix: ProtectedToPrivateFixer - fix asymmetric visibility with only set visibility (#​8763)

v3.76.0

Compare Source

  • chore(release): bump php ci alpine version (#​8581)
  • chore: add missing priority test for BracesPositionFixer and MultilinePromotedPropertiesFixer (#​8596)
  • chore: add more assertions in tests (#​8740)
  • chore: bump dependencies version to maximum for non-newest MAJOR version (#​8753)
  • chore: cast types in tests (#​8742)
  • chore: cleanup booleans use in tests (#​8738)
  • chore: cleanup code in tests (#​8745)
  • chore: cleanup PsrAutoloadingFixerTest.php keywords handling, as always defined currently (#​8730)
  • chore: cleanup AlignMultilineCommentFixerTest (#​8688)
  • chore: cleanup BinaryOperatorSpacesFixerTest (#​8687)
  • chore: cleanup BlankLineBeforeStatementFixerTest (#​8685)
  • chore: cleanup ClassDefinitionFixerTest (#​8684)
  • chore: cleanup ClassDefinitionFixer (#​8580)
  • chore: cleanup ConcatSpaceFixerTest (#​8683)
  • chore: cleanup DoctrineAnnotationArrayAssignmentFixerTest (#​8621)
  • chore: cleanup DoctrineAnnotationBracesFixerTest (#​8623)
  • chore: cleanup DoctrineAnnotationIndentationFixerTest (#​8620)
  • chore: cleanup DoctrineAnnotationSpacesFixerTest (#​8624)
  • chore: cleanup EchoTagSyntaxFixerTest (#​8681)
  • chore: cleanup file_get_contents return types (#​8735)
  • chore: cleanup FunctionDeclarationFixerTest (#​8680)
  • chore: cleanup FunctionToConstantFixerTest (#​8618)
  • chore: cleanup GeneralPhpdocTagRenameFixerTest (#​8627)
  • chore: cleanup GlobalNamespaceImportFixerTest (#​8679)
  • chore: cleanup HeaderCommentFixerTest (#​8677)
  • chore: cleanup HeaderCommentFixerTest (restore @requires for PHP 8.1) (#​8678)
  • chore: cleanup IncrementStyleFixerTest (#​8676)
  • chore: cleanup IndentationTypeFixerTest (#​8675)
  • chore: cleanup ListSyntaxFixerTest (#​8674)
  • chore: cleanup MethodArgumentSpaceFixerTest (#​8673)
  • chore: cleanup MultilineWhitespaceBeforeSemicolonsFixerTest (#​8614)
  • chore: cleanup NativeConstantInvocationFixerTest (#​8672)
  • chore: cleanup NewWithParenthesesFixerTest (#​8592)
  • chore: cleanup NoBlankLinesAfterPhpdocFixerTest (#​8671)
  • chore: cleanup NoBreakCommentFixerTest (#​8670)
  • chore: cleanup NoClosingTagFixerTest (#​8669)
  • chore: cleanup NoEmptyStatementFixerTest (#​8667)
  • chore: cleanup NoSpacesAroundOffsetFixerTest (#​8666)
  • chore: cleanup NoUnneededControlParenthesesFixerTest (#​8665)
  • chore: cleanup NoUselessElseFixerTest (#​8664)
  • chore: cleanup PhpdocAddMissingParamAnnotationFixerTest (#​8663)
  • chore: cleanup PhpdocNoEmptyReturnFixerTest (#​8662)
  • chore: cleanup PhpdocNoPackageFixerTest (#​8626)
  • chore: cleanup PhpdocOrderByValueFixerTest (#​8661)
  • chore: cleanup PhpdocOrderFixerTest (#​8660)
  • chore: cleanup PhpdocParamOrderFixerTest (#​8659)
  • chore: cleanup PhpdocReturnSelfReferenceFixerTest (#​8658)
  • chore: cleanup PhpdocSeparationFixerTest (#​8657)
  • chore: cleanup PhpdocSummaryFixerTest (#​8654)
  • chore: cleanup PhpdocTrimFixerTest (#​8653)
  • chore: cleanup PhpdocTypesOrderFixerTest (#​8652)
  • chore: cleanup PhpdocVarWithoutNameFixerTest (#​8617)
  • chore: cleanup PhpUnitConstructFixerTest (#​8651)
  • chore: cleanup PhpUnitDedicateAssertFixerTest (#​8650)
  • chore: cleanup PhpUnitTestCaseStaticMethodCallsFixerTest (#​8649)
  • chore: cleanup Preg issues (#​8720)
  • chore: cleanup ReturnAssignmentFixerTest (#​8648)
  • chore: cleanup ReturnTypeDeclarationFixerTest (#​8647)
  • chore: cleanup SingleImportPerStatementFixerTest (#​8645)
  • chore: cleanup SingleLineCommentStyleFixerTest (#​8644)
  • chore: cleanup SingleSpaceAroundConstructFixerTest (#​8642)
  • chore: cleanup SpaceAfterSemicolonFixerTest (#​8625)
  • chore: cleanup SpacesInsideParenthesesFixerTest (#​8641)
  • chore: cleanup StatementIndentationFixerTest (#​8640)
  • chore: cleanup YodaStyleFixerTest (#​8638)
  • chore: do not check if JSON_INVALID_UTF8_IGNORE is defined because it always is (since PHP 7.2) (#​8709)
  • chore: handle saveXML failures explicitly (#​8755)
  • chore: ignore remaining PHPStan (false positive) issues (#​8746)
  • chore: improve PHPDoc's types in (#​8741)
  • chore: improve PHPDocs in tests (#​8736)
  • chore: improve PHPDocs in tests (#​8744)
  • chore: improve type of Token::equalsAny (#​8743)
  • chore: lint yaml files (#​8622)
  • chore: MultilinePromotedPropertiesFixer - mark new fixer introduced in #​8595 as experimental (#​8758)
  • chore: PHPMD - cleanup UnusedLocalVariable for foreach (#​8637)
  • chore: refactor FCT (#​8714)
  • chore: remove unused local variables in src (#​8600)
  • chore: remove unused local variables in tests (#​8599)
  • chore: remove useless test from AliasedFixerOptionTest (#​8739)
  • chore: remove defined calls from tests (#​8708)
  • chore: restore original type of Token::equalsAny, partially reverts #​8743 (#​8759)
  • chore: run mutation tests on PHP 8.4 (#​8594)
  • chore: solve one of phpstan warnings (#​8754)
  • chore: update dev tools (#​8737)
  • chore: update PHPUnit config (#​8721)
  • chore: update checkbashisms to 2.25.12 (#​8694)
  • chore: update checkbashisms to 2.25.14 (#​8731)
  • chore: use PHPStan type in data providers (#​8605)
  • chore: use foreach values (#​8636)
  • chore: use Preg class everywhere (#​8689)
  • CI: add self-approved label (#​8757)
  • CI: run on PHP 8.5 (#​8713)
  • deps: bump alpine from 3.21.3 to 3.22.0 (#​8724)
  • deps: bump alpine from 3.21.3 to 3.22.0 (#​8726)
  • deps: bump ergebnis/composer-normalize from 2.45.0 to 2.46.0 in /dev-tools (#​8578)
  • deps: bump ergebnis/composer-normalize from 2.46.0 to 2.47.0 in /dev-tools (#​8584)
  • deps: bump phpstan/phpstan from 2.1.11 to 2.1.12 in /dev-tools in the phpstan group (#​8583)
  • deps: bump phpstan/phpstan-symfony from 2.0.3 to 2.0.4 in /dev-tools in the phpstan group (#​8557)
  • deps: bump the phpstan group across 1 directory with 2 updates (#​8682)
  • deps: upgrade docker deps (#​8566)
  • docs: extend and fix links to code (#​8639)
  • docs: Update SECURITY.md (#​8716)
  • docs: VisibilityRequiredFixer - extend docs (#​8561)
  • docs: VisibilityRequiredFixer - update docs (#​8563)
  • DX: add symfony/polyfill-php84 (#​8555)
  • DX: always use the latest stable checkbashisms package (#​8732)
  • DX: check for preg_ functions in tests (#​8571)
  • DX: cleanup BlankLinesBeforeNamespaceFixerTest (#​8573)
  • DX: cleanup NativeFunctionInvocationFixerTest (#​8567)
  • DX: cleanup NoUselessConcatOperatorFixerTest (#​8572)
  • DX: cleanup SemicolonAfterInstructionFixerTest (#​8570)
  • DX: fix data providers (#​8693)
  • DX: introduce FCT class for tokens not present in the lowest supported PHP version (#​8706)
  • DX: move symfony/polyfill-php84 to dev deps (#​8559)
  • DX: support PHP 8.4 in local Docker development environment (#​8564)
  • DX: trim array/yield keys (#​8460)
  • DX: use WhitespacesAwareFixerInterface only when needed (#​8541)
  • feat: add NewExpressionParenthesesFixer (#​8246)
  • feat: allowUnsupportedPhpVersion (#​8733)
  • feat: introduce MultilinePromotedPropertiesFixer (#​8595)
  • feat: Introduce StaticPrivateMethodFixer (#​4557)
  • feat: BracesPositionFixer - support property hooks in promoted properties (#​8613)
  • feat: ClassAttributesSeparationFixer - add support for property hooks (#​8610)
  • feat: GlobalNamespaceImportFixer - analyse and fix more annotations with types (#​8593)
  • feat: LowercaseKeywordsFixer - support asymmetric visibility (#​8607)
  • feat: NoExtraBlankLinesFixer - add comma to supported tokens (#​8655)
  • feat: NoSuperfluousPhpdocTagsFixer - support asymmetric visibility (#​8700)
  • feat: NullableTypeDeclarationFixer - support asymmetric visibility (#​8697)
  • feat: OrderedClassElementsFixer - add support for property hooks for abstract properties (#​8574)
  • feat: OrderedTypesFixer - add support for asymmetric visibility (#​8552)
  • feat: OrderedTypesFixer - support asymmetric visibility in promoted property (#​8602)
  • feat: PhpdocAddMissingParamAnnotationFixer - support asymmetric visibility (#​8701)
  • feat: PhpdocLineSpanFixer - support asymmetric visibility (#​8702)
  • feat: PhpdocVarWithoutNameFixer - support asymmetric visibility (#​8704)
  • feat: ProtectedToPrivateFixer - add support for asymmetric visibility (#​8569)
  • feat: SingleClassElementPerStatementFixer - support asymmetric visibility (#​8696)
  • feat: SingleSpaceAroundConstructFixer - add support for asymmetric visibility (#​8699)
  • feat: StaticLambdaFixer - support functions having classy elements with $this (#​8728)
  • feat: VisibilityRequiredFixer - support ordering set-visibility modifier (#​8606)
  • fix(dependabot): convert time values to string types (#​8634)
  • fix: "array" type must have no prefix to be fixable to "list" (#​8692)
  • fix: "min"/"max" in int generics must never be prefixed by backslash (#​8691)
  • fix: Allow non-doc comment on opening inline brace line (#​8690)
  • fix: ConstantCaseFixer - do not touch namespaces starting with Null\ (#​8752)
  • fix: LowercaseStaticReferenceFixer - do not change global constants (#​8727)
  • fix: MultilineWhitespaceBeforeSemicolonsFixer - do not touch multiline constants definitions (#​8615)
  • fix: NewWithParenthesesFixer - fix new without parentheses on PHP 8.4 syntax (#​8588)
  • fix: NoMultipleStatementsPerLineFixer - handle set and get in different casing in property hooks (#​8558)
  • fix: NoUnusedImportsFixer - handle imported class name with underscore before or after it in PHPDoc (#​8598)
  • fix: PhpUnitDedicateAssertFixer - fix for assertFalse with instanceof (#​8597)
  • fix: PhpUnitNamespacedFixer must rune before NoUnneededImportAliasFixer (#​8579)
  • fix: PhpUnitTestClassRequiresCoversFixer - do not add @coversNothing annotation when CoversTrait attribute is used (#​8734)
  • fix: VisibilityRequiredFixer - add support for asymmetric visibility (#​8586)
  • refactor: avoid unused local variables in tests (#​8609)
  • test: add more cases to PhpUnitMethodCasingFixerTest (#​8551)
  • test: fix "unused local variables $token" (#​8603)
  • test: More verbose error output for integration test (#​8565)
  • Update SECURITY.md

v3.75.0

Compare Source

  • feat: ClassAttributesSeparationFixer - add support for asymmetric visibility (#​8518)
  • fix: NativeFunctionInvocationFixer - fix for property hooks (#​8540)
  • chore: add return types for data providers for fixers (#​8542)
  • chore: add return types for data providers for non-fixers (#​8543)
  • chore: add return types for remaining data providers (#​8544)
  • chore: make data providers key type int if all the keys are strings (#​8550)
  • chore: make data providers key type string if all the keys are strings (#​8545)
  • chore: SwitchContinueToBreakFixerTest - improve test case descriptions/typehint (#​8546)
  • chore: FunctionsAnalyzerTest cleanup (#​8539)
  • deps: bump the phpstan group in /dev-tools with 2 updates (#​8537)
  • test: ProjectCodeTest::testDataProvidersDeclaredReturnType - allow for int as iterable keys (#​8548)

v3.74.0

Compare Source

  • feat: add --format=@&#8203;auto (#​8513)
  • fix: BracesPositionFixer - do not create two consecutive whitespace tokens (#​8496)
  • fix: MbStrFunctionsFixer - fix imports with leading backslash (#​8507)
  • fix: NoUnreachableDefaultArgumentValueFixer - do not crash on property hook (#​8512)
  • fix: OrderedImportsFixer - do not take the braces part in grouped imports into account (#​8459)
  • fix: OrderedImportsFixer - fix syntax error with grouped use statement and multiple use with comma (#​8483)
  • fix: PhpUnitAttributesFixer - handle parentheses after data provider method name (#​8510)
  • fix: PhpUnitMethodCasingFixer - do not touch anonymous class (#​8463)
  • chore: make options that have default and allowed sets the same size the same array (#​8529)
  • chore: update return type of FixerOptionInterface::getAllowedValues (#​8530)
  • chore: Preg - improve types (#​8527)
  • CI: fix code coverage job (#​8520)
  • CI: try MacOS job without ParaUnit (#​8528)
  • deps: update PHPStan (#​8531)
  • deps: upgrade PHPStan/* (#​8524)

v3.73.1

Compare Source

  • fix: OrderedClassElementsFixer - do not crash on property hook (#​8517)

v3.73.0

Compare Source

  • feat: add support for asymmetric visibility to Doctrine's fixers (#​8415)
  • fix: GeneralPhpdocTagRenameFixer - do not rename keys in array shape definition (#​8477)
  • fix: MethodArgumentSpaceFixer - handle when nested in HTML (#​8503)
  • chore: update checkbashisms to 2.25.5 (#​8519)
  • DX: cleanup NoExtraBlankLinesFixerTest (#​8505)
  • DX: for duplicated test methods check methods without parameters (#​8508)
  • DX: remove more duplicated test methods (#​8506)
  • refactor: Tokenizer hash metode using xxHash (#​8491)
  • refactor: TokensAnalyzerTest - better test isArray and isArrayMultiLine (#​8504)
  • test: run code coverage on PHP 8.4 (#​8448)

v3.72.0

Compare Source

  • feat: StatementIndentationFixer - handle property hooks (#​8492)
  • fix: MbStrFunctionsFixer - fix imports (#​8474)
  • fix: TrailingCommaInMultilineFixer - handle empty match body (#​8480)
  • fix: VisibilityRequiredFixer - handle property hooks (#​8495)
  • deps: upgrade few dev-deps (#​8490)
  • deps: Upgrade PHPStan to 2.1.8 (#​8489)
  • DX: add trailing comma to multiline auto-generated types (#​8499)
  • refactor: generalize CodeHasher into Hasher (#​8500)
  • refactor: Runner - unify paths used when using parallel runner (#​8488)
  • refactor: use Hasher instead of md5 directly (#​8501)

v3.71.0

Compare Source

  • feat: OrderedImportsFixer - deprecate length sorting algorithm (#​8473)
  • fix: BinaryOperatorSpacesFixer - do not break alignment of UTF-8 array keys (#​8484)
  • fix: PhpdocAlignFixer - align correctly type with UTF8 characters (#​8486)
  • fix: SingleSpaceAroundConstructFixer - handle alternative syntax (#​8317)
  • fix: StatementIndentationFixer - return in braceless if (#​8479)
  • chore: update type in SingleSpaceAroundConstructFixerTest::provideFixWithElseIfCases (#​8481)
  • chore: update type in SingleSpaceAroundConstructFixerTest::provideFixWithIfCases (#​8482)
  • deps: bump phpstan/phpstan from 2.1.6 to 2.1.7 in /dev-tools in the phpstan group (#​8485)
  • DX: cleanup PhpdocNoAliasTagFixerTest (#​8476)
  • refactor: add FullyQualifiedNameAnalyzer (#​8048)
  • refactor: codeHash - update when it's (re-)generated (#​8470)
  • refactor: SwitchAnalyzer - improve performance (#​8407)
  • test: NameQualifiedTransformerTest - correct test case (#​8471)

v3.70.2

Compare Source

  • deps: upgrade deep dev-tools deps (#​8472)
  • fix: MbStrFunctionsFixer must run before NativeFunctionInvocationFixer (#​8466)
  • fix: MethodArgumentSpaceFixer - fix nested calls for ensure_fully_multiline option (#​8469)

v3.70.1

Compare Source

  • fix: PhpUnitSizeClassFixer must run before PhpUnitAttributesFixer (#​8457)
  • DX: cleanup OrderedImportsFixerTest (#​8458)

v3.70.0

Compare Source

  • feat: Add PhpUnitDataProviderMethodOrderFixer fixer (#​8225)
  • feat: HeaderCommentFixer - allow validators (#​8452)
  • feat: PhpCsFixer ruleset: use operator_linebreak rule for all operators (#​8417)
  • feat: PhpUnitMethodCasingFixer to support PHPUnit's Test attribute (#​8451)
  • feat: TypeDeclarationSpacesFixer - Fix whitespace between const type and const name (#​8442)
  • chore: extend bug report template (#​8447)
  • chore: extend bug report template - more installation options (#​8450)
  • CI: phpstan-symfony - add entry point for console (#​8292)
  • deps: bump alpine from 3.21.2 to 3.21.3 (#​8454)
  • deps: bump phpstan/phpstan from 2.1.5 to 2.1.6 in /dev-tools in the phpstan group (#​8453)
  • fix: CommentsAnalyzer - allow other forms of assignment as valid structural elements for PHPDocs (#​8371)
  • fix: PhpUnitTestClassRequiresCoversFixer must run before PhpUnitAttributesFixer (#​8444)
  • test: fix CheckCommandTest::testDryRunModeIsUnavailable to correctly check that option --dry-run is unavailable (#​8438)

v3.69.1

Compare Source

  • fix: PhpUnitAttributesFixer - convert correctly version constraint (#​8439)
  • test: PhpUnitAttributesFixer must run before NoEmptyPhpdocFixer (#​8443)

v3.69.0

Compare Source

  • feat: Add unsealed array shape phpdoc support (#​8299)
  • fix: OrderedClassElementsFixer - sort correctly typed constants (#​8408)
  • chore: do not use test class as test data (#​8430)
  • chore: update checkbashisms to 2.25.2 (#​8427)
  • chore: use constants instead of literal strings (#​8422)
  • CI: no need to unlock deps on master (#​8426)
  • CI: run tests using PHPUnit 12 (#​8431)
  • deps: bump kubawerlos/composer-smaller-lock from 1.0.1 to 1.1.0 in /dev-tools (#​8414)
  • deps: bump maglnet/composer-require-checker from 4.14.0 to 4.15.0 in /dev-tools (#​8406)
  • deps: bump phpstan/phpstan from 2.1.3 to 2.1.5 in /dev-tools in the phpstan group (#​8437)
  • deps: bump the phpstan (#​8423)
  • deps: upgrade dev requirements (#​8424)

v3.68.5

Compare Source

  • fix: NativeTypeDeclarationCasingFixer - do not touch constants named as native types (#​8404)

v3.68.4

Compare Source

  • chore: run SCA on PHP 8.4 (#​8396)
  • fix: NativeTypeDeclarationCasingFixer should not touch property names (#​8400)

v3.68.3

Compare Source

  • fix: NativeTypeDeclarationCasingFixer - fix for enum with "Mixed" case (#​8395)

v3.68.2

Compare Source

  • fix: NativeTypeDeclarationCasingFixer - fix for promoted properties, enums, false and mixed (#​8386)
  • chore: ensure that dev-tools dependencies are bumped (#​8389)
  • chore: experiment to see if we can auto-shrink the lock after dependabot (#​8383)
  • chore: experiment to see if we can auto-shrink the lock after dependabot /part (#​8384)
  • chore: Get rid of Docker warnings during build (#​8379)
  • chore: remove redundant check (#​8391)
  • chore: update types (#​8390)
  • CI: stale - update close msg to emphasize contribution over demand (#​8385)
  • deps: bump phpcompatibility/phpcompatibility-symfony from 1.2.1 to 1.2.2 in /dev-tools (#​8378)
  • deps: bump the phpstan group in /dev-tools with 4 updates (#​8387)
  • refactor: Use native Yaml::parseFile() instead of custom method (#​8380)

v3.68.1

Compare Source

  • chore: AutoReview/CiConfigurationTest - handle failure of reading files (#​8375)
  • CI: Docker - check all compose services (#​8370)
  • deps: bump alpine from 3.18 to 3.21 (#​8377)
  • deps: bump alpine from 3.18.4 to 3.21.2 (#​8362)
  • refactor: Tokens::clearEmptyTokens - optimize cache handling (#​8335)

v3.68.0

Compare Source

  • feat: ModernizeStrposFixer - support stripos (#​8019)
  • chore: FullyQualifiedStrictTypesFixer - reduce conditions count (#​8368)
  • test: PhpUnitSetUpTearDownVisibilityFixer - extend test for anonymous classes (#​8369)

v3.67.1

Compare Source

  • fix: FullyQualifiedStrictTypesFixer - fix return types (#​8367)
  • fix: PhpUnitSetUpTearDownVisibilityFixer - do not touch anonymous classes (#​8366)
  • chore: allow for class-string in doc types of rule options (#​8358)
  • chore: CS: Move data provider methods after their test method (#​8302)
  • chore: dependabot integration (#​8357)
  • chore: PHPStan - upgrade to 2.1 (#​8355)
  • CI: Introduce PHP compatibility check (#​7844)
  • deps: bump docker/build-push-action from 5 to 6 (#​8361)
  • docs: update installation instructions (#​8356)

v3.67.0

Compare Source

  • chore: simplify loops using end/prev functions (#​8352)
  • feat: Introduce general_attribute_remove fixer (#​8339)

v3.66.2

Compare Source

  • chore: do not use bitwise "or" assignment operator (#​8346)
  • chore: remove extra check, never happening (#​8348)
  • chore: remove impossible @throws annotation (#​8353)
  • chore: Tokens - cleanup (#​8350)
  • chore: Tokens - minor performance and types optimizations (#​8349)

v3.66.1

Compare Source

  • chore: fix CI for Windows (#​8326)
  • chore: NoMultipleStatementsPerLineFixer - be aware of PHP 8.4 property hooks (#​8344)
  • chore: TernaryToElvisOperatorFixer - improvements based on PHPStan detections (#​8345)
  • chore: PhpUnitTestCaseStaticMethodCallsFixer - fix type of methods option in documentation and add example with it (#​8338)
  • chore: update legacy deps (#​8342)
  • deps: update box (#​8336)

v3.66.0

Compare Source

  • feat: Tokenizer - initial support for PHP 8.4 property hooks (#​8312)
  • feat: PhpUnitTestCaseStaticMethodCallsFixer - cover PHPUnit v11.5 methods (#​8314)
  • feat: PhpUnitTestCaseStaticMethodCallsFixer - make sure all static protected methods are handled (#​8327)
  • feat: PhpUnitTestCaseStaticMethodCallsFixer - support createStub (#​8319)
  • feat: UseArrowFunctionsFixer - support multiline statements (#​8311)
  • fix: NullableTypeDeclarationFixer - do not break multi-line declaration (#​8331)
  • test: CiConfigurationTest - drop not needed condition, logic is checked in upcoming assertion (#​8303)
  • chore: add more typehints (#​8325)
  • chore: DotsOutput - more const, better typing (#​8318)
  • chore: mark classes as readonly (#​8275)
  • chore: more const, better typing (#​8320)
  • chore: temporarily prevent symfony/process 7.2+ (#​8322)
  • chore: Tokens - simplify (un)registerFoundToken types (#​8328)
  • chore: upgrade PHPStan (#​8321)
  • chore: BraceTransformer - don't touch curly index braces since 8.4, as it's not a valid syntax anymore (#​8313)
  • CI: enable phpdoc_to_property_type on php-lowest (#​8324)
  • Create SECURITY.md
  • docs: Tokens - fix docs (#​8332)

v3.65.0

Compare Source

  • feat: Ability to set upper limit when using CPU auto-detection (#​8280)
  • feat: create @PHP82Migration:risky ruleset (#​8277)
  • feat: Impl. TypeExpression::mapTypes() (#​8077)
  • feat: Parse array/generic/nullable type into inner expression (#​8106)
  • feat: phpdoc_to_property_type - handle virtual types and null initialization, enable in php-highest CI job (#​8283)
  • feat: Store PHPDoc offset in DataProviderAnalysis (#​8226)
  • feat: Support for complex PHPDoc types in fully_qualified_strict_types (#​8085)
  • fix: check for priority tests correctly (#​8221)
  • fix: Do not mark with @coversNothing if CoversMethod/CoversFunction attribute is used (#​8268)
  • fix: enum-case mistaken for const invocation (#​8190)
  • fix: fix typing of few properties wrongly typed as non-nullable (#​8285)
  • fix: fix typing property wrongly typed as non-nullable (#​8290)
  • fix: MethodChainingIndentationFixer does not fix indentation of last chained property (#​8080)
  • fix: NoSuperfluousPhpdocTagsFixer - Remove superfluous phpdoc of parameter with attribute (#​8237)
  • fix: parsing mixed & and | in TypeExpression (#​8210)
  • fix: proper base class used for AbstractDoctrineAnnotationFixer templates generation (#​8291)
  • fix: Properly recognise constants in foreach loops (#​8203)
  • fix: Tokens::overrideRange() block cache pruning (#​8240)
  • fix: BlankLineAfterOpeningTagFixer - add blank line in file starting with multi-line comment (#​8256)
  • fix: MultilineWhitespaceBeforeSemicolonsFixer - do not produce syntax error when there is a meaningful token after semicolon (#​8230)
  • fix: NullableTypeDeclarationFixer - do not break syntax when there is no space before ? (#​8224)
  • fix: PhpUnitDataProvider(.+)Fixer - do not omit when there is an attribute between PHPDoc and test method (#​8185)
  • fix: PhpUnitDataProviderNameFixer - for an attribute between PHPDoc and test method (#​8217)
  • chore: add todo for PHP v8 (#​8274)
  • chore: auto-fallback to sequential runner if single CPU would handle it (#​8154)
  • chore: block changing tokens collection size using PhpCsFixer\Tokenizer\Tokens::setSize (#​8257)
  • chore: bump dev-tools (#​8286)
  • chore: bump PHPStan (#​8245)
  • chore: Cheaper file check first (#​8252)
  • chore: ConfigInterface - better types (#​8244)
  • chore: do not call Tokens::setSize in GroupImportFixer (#​8253)
  • chore: do not use Reflection*::setAccessible (#​8264)
  • chore: fix priority tests (#​8223)
  • chore: Fix typos in AbstractFixerTestCase (#​8247)
  • chore: GithubClient - make URL injectable (#​8272)
  • chore: Implement PHPStan Preg::match() extensions (#​8103)
  • chore: mark remaining Analysis as @internal (#​8284)
  • chore: PHPStan - upgrade to v2 (#​8288)
  • chore: reduce amount of class mutable properties (#​8281)
  • chore: remove from priority tests exceptions tests that are not actually exceptions (#​8222)
  • chore: remove incorrect priority tests (#​8231)
  • chore: remove not needed PHP version requirements in descriptions (#​8265)
  • chore: remove unnecessary methods (#​8200)
  • chore: tests/Tokenizer/Transformer - better typehinting (#​8243)
  • chore: Token - remove 'changed' property (#​8273)
  • chore: Token::getContent() phpdoc return type (#​8236)
  • chore: update dev dependencies in root (#​8289)
  • chore: update PHPStan to 1.12.9 (#​8271)
  • chore: update checkbashisms to 2.24.1 (#​8258)
  • chore: use null coalescing assignment operator where possible (#​8219)
  • CI: allow macos to fail (#​8194)
  • CI: build phar on PHP 8.3 (#​8195)
  • CI: drop matrix for single-matrix-entry jobs of SCA and Deployment checks (#​8193)
  • CI: Ensure php-cs-fixer PHP compatibility /part (#​8241)
  • CI: Ensure php-cs-fixer PHP compatibility (#​8235)
  • CI: generate and execute code in assert (#​8207)
  • CI: update PHPStan to 1.12.2 (#​8198)
  • CI: update PHPStan to 1.12.3 (#​8204)
  • CI: use phpstan-symfony (#​8287)
  • depr: ConfigInterface::getPhpExecutable() and ConfigInterface::setPhpExecutable() (#​8192)
  • deps: add composer-smaller-lock (#​8263)
  • deps: Update PHPStan to 1.12.4 (#​8215)
  • deps: Update PHPStan to 1.12.5 (#​8218)
  • deps: update PHPStan to 1.12.7 (#​8255)
  • docs: fix inconsistency in config doc (#​8269)
  • docs: mention github action example instead of travis-ci (#​8250)
  • DX: Cover php-cs-fixer file with static analysis (#​8229)
  • DX: Make TypeExpression API more explicit about composite types (#​8214)
  • refactor: change _AttributeItems to non-empty-list<_AttributeItem> to allow using single attribute item (#​8199)
  • refactor: Rename newly introduced option (#​8293)
  • refactor: Runner - Enhance eventing system (#​8276)
  • refactor: Runner - make 4.0 TODOs easier to understand (#​8196)
  • refactor: use arrow functions in more places (#​8294)
  • test: @PHP82Migration:risky - add integration tests (#​8278)

v3.64.0

Compare Source

  • feat: Symfony - adjust configuration for sets (#​8188)
  • feat: Symfony.trailing_comma_in_multiline - adjust configuration (#​8161)
  • feat: Update PSR2, PSR12 and PER-CS2 with single_space_around_construct config (#​8171)
  • CI: Update PHPStan to 1.12.0 and fix the error that appeared (#​8184)

v3.63.2

Compare Source

  • fix: FullyQualifiedStrictTypesFixer - reset cache even if there is no use (#​8183)

v3.63.1

Compare Source

  • dummy release

v3.63.0

Compare Source

  • feat: Add array_destructuring as option for trailing_comma_in_multiline (#​8172)
  • feat: remove braces even for single import (#​8156)
  • feat: TrailingCommaInMultilineFixer - dynamically evaluate config against PHP version (#​8167)
  • fix: Do not shorten FQN for class resolution if imported symbol is not a class (#​7705)
  • fix: Ensure PHP binary path is used as a single CLI argument in parallel worker process (#​8180)
  • fix: PhpUnitAttributesFixer - fix priorities with PhpUnitDataProvider(.+)Fixer (#​8169)
  • chore: add tags for data providers that will change PHPStan's baseline (#​8178)
  • chore: add @return tags for data providers already having PHPDoc (#​8176)
  • chore: add @return tags for data providers that do not have array in data (#​8179)
  • chore: remove duplicates from data providers (#​8164)
  • chore: remove duplicates from data providers that are copies in code (#​8145)
  • chore: remove beStrictAboutTodoAnnotatedTests from PHPUnit's config (#​8160)
  • CI: Update PHPStan to 1.11.10 (#​8163)
  • CI: Update PHPStan to 1.11.11 and fix error that changed (#​8174)
  • docs: fix indent on rule date_time_create_from_format_call (#​8173)

v3.62.0

Compare Source

  • feat: set new_with_parentheses for anonymous_class to false in PER-CS2.0 (#​8140)
  • chore: NewWithParenthesesFixer - create TODO to change the default configuration to match PER-CS2 (#​8148)

v3.61.1

Compare Source

  • fix: NoSuperfluousPhpdocTagsFixer - fix "Undefined array key 0" error (#​8150)

v3.61.0

Compare Source

  • feat: no_superfluous_phpdoc_tags - also cover ?type (#​8125)
  • feat: support PHPUnit v9.1 naming for some asserts (#​7997)
  • fix: Do not mangle non-whitespace token in PhpdocIndentFixer (#​8147)
  • DX: add more typehints for class-string (#​8139)
  • DX: refactor ProjectCodeTest::provideDataProviderMethodCases (#​8138)

v3.60.0

Compare Source

  • feat: Add sprintf in the list of compiler optimized functions (#​8092)
  • feat: PhpUnitAttributesFixer - add option to keep annotations (#​8090)
  • chore: cleanup tests that had @requires PHP 7.4 ages ago (#​8122)
  • chore: cleanup TokensAnalyzerTest (#​8123)
  • chore: fix example issue reported by reportPossiblyNonexistentGeneralArrayOffset from PHPStan (#​8089)
  • chore: NoSuperfluousPhpdocTagsFixer - no need to call heavy toComparableNames method to add null type (#​8132)
  • chore: PHPStan 11 array rules (#​8011)
  • chore: PhpUnitSizeClassFixerTest - solve PHP 8.4 issues (#​8105)
  • chore: reduce PHPStan errors in PhpUnitAttributesFixer (#​8091)
  • chore: reuse test methods (#​8119)
  • CI: check autoload (#​8121)
  • CI: Update PHPStan to 1.11.8 (#​8133)
  • deps: upgrade dev-tools (#​8102)
  • DX: check for duplicated test data (#​8131)
  • DX: check for duplicated test methods (#​8124)
  • DX: check for duplicated test methods (as AutoReview test) (#​8134)
  • DX: do not exclude duplicates that are clearly mistakes (#​8135)
  • DX: Dump offsetAccess.notFound errors to baseline (#​8107)
  • fix: Better way of walking types in TypeExpression (#​8076)
  • fix: CI for PHP 8.4 (#​8114)
  • fix: update TokensTest to shrink PHPStan's baseline (#​8112)
  • fix: no_useless_concat_operator - do not break variable (2) (#​7927)
  • fix: NullableTypeDeclarationFixer - don't convert standalone null into nullable union type (#​8098)
  • fix: NullableTypeDeclarationFixer - don't convert standalone NULL into nullable union type (#​8111)
  • fix: NullableTypeDeclarationFixer - insert correct token (#​8118)
  • fix: PhpUnitAttributesFixer - handle multiple annotations of the same name (#​8075)

v3.59.3

Compare Source

  • refactor: refactor to templated trait+interface (#​7988)

v3.59.2

Compare Source

  • fix: "list" is reserved type (#​8087)
  • chore: add missing type in method prototype (#​8088)
  • CI: bump Ubuntu version (#​8086)
  • deps: bump infection to unblock PHPUnit 11, and few more as chore (#​8083)

v3.59.1

Compare Source

  • fix: Bump React's JSON decoder buffer size (#​8068)
  • docs: options - handle enums in dicts (#​8082)

v3.59.0

Compare Source

  • feat(Docker): Multi-arch build (support for arm64) (#​8079)
  • feat: @PhpCsFixer ruleset - normalise implicit backslashes in single quoted strings (#​7965)
  • feat: SimpleToComplexStringVariableFixer - support variable being an array (#​8064)
  • fix: Look up for PHPDoc's variable name by only chars allowed in the variables (#​8062)
  • fix: Update PhpUnitTestCaseStaticMethodCallsFixer::STATIC_METHODS (#​8073)
  • fix: native_constant_invocation - array constants with native constant names (#​8008)
  • chore: update PHPStan (#​8060)
  • CI: Update PHPStan to 1.11.4 (#​8074)
  • docs: don't expose list as config type for dicts (#​8081)
  • docs: Make wording in final_class docs less dismissive (#​8065)
  • docs: Update 1-bug_report.yml (#​8067)
  • DX: Remove version from Docker Compose files (#​8061)

v3.58.1

Compare Source

  • fix: ConstantCaseFixer - do not change class constant usages (#​8055)
  • fix: PhpUnitTestClassRequiresCoversFixer - do not add annotation when attribute with leading slash present (#​8054)

v3.58.0

Compare Source

  • chore(doc): Use FQCN for parallel config in documentation (#​8029)
  • chore: fix typo in PhpUnitTestClassRequiresCoversFixerTest (#​8047)
  • chore: RandomApiMigrationFixer - do not modify configuration property (#​8033)
  • chore: Tokens::setCode - further improvements to cache (#​8053)
  • chore: update PHPStan (#​8045)
  • docs: Add missing imports in a cookbook about creating custom rules (#​8031)
  • docs: fix deprecated string interpolation style (#​8036)
  • docs: global_namespace_import - simplify allowed config types (#​8023)
  • feat(GroupImportFixer): Ability to configure which type of imports should be grouped (#​8046)
  • fix: clear Tokens::$blockStartCache and Tokens::$blockEndCache when calling Tokens::setCode (#​8051)
  • fix: correctly handle PHP closing tag with simplified_null_return (#​8049)
  • fix: ConstantCaseFixer - do not change namespace (#​8004)
  • fix: PhpUnitAttributesFixer - do not add attribute if already present (#​8043)
  • fix: PhpUnitSizeClassFixer - do not add annotation when there are attributes (#​8044)
  • fix: PhpUnitTestClassRequiresCoversFixer - attribute detection when class is readonly (#​8042)

v3.57.2

Compare Source

  • docs: better ConfigurableFixer allowed types (#​8024)
  • docs: Improve Docker usage example (#​8021)
  • feat: Report used memory to 2 decimal digits only (#​8017)
  • fix: Support named args in ParallelConfigFactory::detect() (#​8026)
  • fix: php_unit_test_class_requires_covers Attribute detection when class is final (#​8016)

v3.57.1

Compare Source

  • chore: update PHPDoc in Preg::matchAll (#​8012)
  • fix: Runner - handle no files while in parallel runner (#​8015)

v3.57.0

Compare Source

  • feat: Ability to run Fixer with parallel runner 🎉 (#​7777)

v3.56.2

Compare Source

  • chore: update PHPStan (#​8010)
  • DX: Fix Mess Detector violations (#​8007)
  • DX: Install PCov extension for local Docker (#​8006)

v3.56.1

Compare Source

  • chore: improve PHPDoc typehints (#​7994)
  • CI: Allow any integer in PHPStan error for Token's constructor (#​8000)
  • fix: Better array shape in PhpUnitDedicateAssertFixer (#​7999)
  • fix: ConstantCaseFixer - do not touch typed constants (#​7998)

v3.56.0

Compare Source

  • feat: TrailingCommaInMultilineFixer - handle trailing comma in language constructs (#​7989)
  • fix: TrailingCommaInMultilineFixer - language constructs should be covered by arguments, not parameters (#​7990)
  • chore: remove invalid comment (#​7987)
  • DX: Cache optimisation (#​7985)

v3.55.0

Compare Source

  • feat: Introduce OrderedAttributesFixer (#​7395)
  • chore: few SCA fixes and dev-tools update (#​7969)
  • chore: fix phpdoc types (#​7977)
  • chore: narrow PHPDoc types (#​7979)
  • chore: Normalize implicit backslashes in single quoted strings internally (#​7786)
  • chore: phpdoc - rely on strict list/tuple/assoc instead of array (#​7978)
  • chore: PhpUnitDataProviderNameFixer - follow config creation pattern (#​7980)
  • chore: Preg - drop half-support for array-pattern (#​7976)
  • chore: re-use CodeHasher (#​7984)
  • chore: RuleSetsTest - assert that Fixer is configurable (#​7961)
  • chore: sugar syntax (#​7986)
  • chore: Tokens should be always a list (#​7698)
  • CI: Ad-hoc fix for MacOS jobs (#​7970)
  • CI: Fix calculating diff between branches in PRs (#​7973)
  • DX: allow to enforce cache mechanism by env var (#​7983)
  • DX: do not typehint fixed-length arrays as lists (#​7974)
  • DX: Prevent having deprecated fixers listed as successors of other deprecated fixers (#​7967)
  • DX: Resolve/Ignore PHPStan issues on level 6 + bump to level 7 with new baseline (#​7971)
  • DX: use list type in PHPDoc (#​7975)
  • fix: PhpUnitAttributesFixer - fix for #[RequiresPhp] exceeding its constructor parameters (#​7966)
  • test: don't count comment after class as another classy element (#​7982)

v3.54.0

Compare Source

  • feat: introduce PhpUnitAttributesFixer (#​7831)
  • chore: Properly determine self-approval trigger commit (#​7936)
  • chore: Revert ref for self-approval Git checkout (#​7944)
  • CI: check if proper array key is declared (#​7912)
  • DX: cleanup FullyQualifiedStrictTypesFixerTest (#​7954)
  • DX: cleanup PhpdocNoAccessFixerTest (#​7933)
  • DX: cleanup PhpUnitMethodCasingFixerTest (#​7948)
  • DX: cleanup PhpUnitStrictFixerTest (#​7938)
  • DX: Improve internal dist config for Fixer (#​7952)
  • DX: Improve issue templates (#​7942)
  • DX: there is no namespace if there is no PHP code (#​7953)
  • DX: update .gitattributes (#​7931)
  • fix: Remove Infection during Docker release (#​7937)
  • fix: FullyQualifiedStrictTypesFixer - do not add imports before PHP opening tag (#​7955)
  • fix: PhpUnitMethodCasingFixer - do not double underscore (#​7949)
  • fix: PhpUnitTestClassRequiresCoversFixer - do not add annotation when there are attributes (#​7880)
  • test: Ignore PHP version related mutations (#​7935)

v3.53.0

Compare Source

  • chore: Use list over array in more places (#​7905)
  • CI: allow for self-approvals for maintainers (#​7921)
  • CI: Improve Infection setup (#​7913)
  • CI: no need to trigger enable auto-merge when self-approve (#​7929)
  • DX: reduce array_filter function usages (#​7923)
  • DX: remove duplicated character from trim call (#​7930)
  • DX: update actions producing warnings (#​7925)
  • DX: update actions producing warnings (#​7928)
  • DX: update phpstan/phpstan-strict-rules (#​7924)
  • feat: Add trailing comma in multiline to PER-CS 2.0 (#​7916)
  • feat: Introduce AttributeAnalysis (#​7909)
  • feat: @PHP84Migration introduction (#​7774)
  • fix: Constant invocation detected in typed constants (#​7892)
  • fix: PhpdocArrayTypeFixer - JIT stack limit exhausted (#​7895)
  • test: Introduce Infection for mutation tests (#​7874)

v3.52.1

Compare Source

  • fix: StatementIndentationFixer - do not crash on ternary operator in class property (#​7899)
  • fix: PhpCsFixer\Tokenizer\Tokens::setSize return type (#​7900)

v3.52.0

Compare Source

  • chore: fix PHP 8.4 deprecations (#​7894)
  • chore: fix PHPStan 1.10.60 issues (#​7873)
  • chore: list over array in more places (#​7876)
  • chore: replace template with variable in Preg class (#​7882)
  • chore: update PHPStan (#​7871)
  • depr: nullable_type_declaration_for_default_null_value - deprecate option that is against @PHP84Migration (#​7872)
  • docs: Fix typo (#​7889)
  • feat: Add support for callable template in PHPDoc parser (#​7084)
  • feat: Add array_indentation to PER-CS2.0 ruleset (#​7881)
  • feat: @Symfony:risky - add no_unreachable_default_argument_value (#​7863)
  • feat: PhpCsFixer ruleset - enable nullable_type_declaration_for_default_null_value (#​7870)
  • fix: Constant invocation detected in DNF types (#​7869)
  • fix: Correctly indent multiline constants and properties (#​7875)
  • fix: no_useless_concat_operator - do not break variable (#​7827)
  • fix: TokensAnalyzer - handle unary operator in arrow functions (#​7862)
  • fix: TypeExpression - fix "JIT stack limit exhausted" error (#​7843)

v3.51.0

Compare Source

  • chore: add missing tests for non-documentation classes (#​7848)
  • chore: do not perform type analysis in tests (#​7852)
  • chore: list over array in more places (#​7857)
  • chore: tests documentation classes (#​7855)
  • feat: @Symfony - add nullable_type_declaration (#​7856)
  • test: fix wrong type in param annotation (#​7858)

v3.50.0

Compare Source

  • chore: add missing types (#​7842)
  • chore: BlocksAnalyzer - raise exception on invalid index (#​7819)
  • chore: DataProviderAnalysis - expect list over array (#​7800)
  • chore: do not use @large on method level (#​7832)
  • chore: do not use @medium on method level (#​7833)
  • chore: Fix typos (#​7835)
  • chore: rename variables (#​7847)
  • chore: some improvements around array typehints (#​7799)
  • CI: fix PHP 8.4 job (#​7829)
  • DX: Include symfony/var-dumper in dev tools (#​7795)
  • feat: Ability to remove unused imports from multi-use statements (#​7815)
  • feat: allow PHPUnit 11 (#​7824)
  • feat: Allow shortening symbols from multi-use statements (only classes for now) (#​7816)
  • feat: introduce PhpdocArrayTypeFixer (#​7812)
  • feat: PhpUnitTestCaseStaticMethodCallsFixer - cover PHPUnit v11 methods (#​7822)
  • feat: Support for multi-use statements in NamespaceUsesAnalyzer (#​7814)
  • feat: MbStrFunctionsFixer - add support for mb_trim, mb_ltrim and mb_rtrim functions (#​7840)
  • feat: NoEmptyPhpdocFixer - do not leave empty line after removing PHPDoc (#​7820)
  • feat: no_superfluous_phpdoc_tags - introduce allow_future_params option (#​7743)
  • fix: do not use wrongly named arguments in data providers (#​7823)
  • fix: Ensure PCNTL extension is always installed in Docker (#​7782)
  • fix: PhpdocListTypeFixer - support key types containing <…> (#​7817)
  • fix: Proper build target for local Docker Compose (#​7834)
  • fix: union PHPDoc support in fully_qualified_strict_types fixer (#​7719)
  • fix: ExecutorWithoutErrorHandler - remove invalid PHP 7.4 type (#​7845)
  • fix: fully_qualified_strict_types must honour template/local type identifiers (#​7724)
  • fix: MethodArgumentSpaceFixer - do not break heredoc/nowdoc (#​7828)
  • fix: NumericLiteralSeparatorFixer - do not change float to int when there is nothing after the dot (#​7805)
  • fix: PhpUnitStrictFixer - do not crash on property having the name of method to fix (#​7804)
  • fix: SingleSpaceAroundConstructFixer - correctly recognise multiple constants (#​7700)
  • fix: TypeExpression - handle array shape key with dash (#​7841)

v3.49.0

Compare Source

  • chore(checkbashisms): update to 2.23.7 (#​7780)
  • chore: add missing key types in PHPDoc types (#​7779)
  • chore: Exclude topic/core issues/PRs from Stale Bot (#​7788)
  • chore: DescribeCommand - better handling of deprecations (#​7778)
  • docs: docker - use gitlab reporter in GitLab integration example (#​7764)
  • docs: docker in CI - don't suggest command that overrides path from config file (#​7763)
  • DX: check deprecations exactly (#​7742)
  • feat: Add ordered_types to @Symfony (#​7356)
  • feat: introduce PhpdocListTypeFixer (#​7796)
  • feat: introduce string_implicit_backslashes as escape_implicit_backslashes replacement (#​7669)
  • feat: update Symfony.nullable_type_declaration_for_default_null_value config (#​7773)
  • feat: @PhpCsFixer ruleset - enable php_unit_data_provider_static (#​7685)
  • fix: Allow using cache when running in Docker distribution (#​7769)
  • fix: ClassDefinitionFixer for anonymous class with phpdoc/attribute on separate line (#​7546)
  • fix: ClassKeywordFixer must run before FullyQualifiedStrictTypesFixer (#​7767)
  • fix: function_to_constant get_class() replacement (#​7770)
  • fix: LowercaseStaticReferenceFixer - do not change typed constants (#​7775)
  • fix: PhpdocTypesFixer - handle more complex types (#​7791)
  • fix: TypeExpression - do not break type using walkTypes method (#​7785)

v3.48.0

Compare Source

  • chore: FullyQualifiedStrictTypesFixer must run before OrderedInterfacesFixer (#​7762)
  • docs: Add PHP-CS-Fixer integration in a GitHub Action step (#​7757)
  • feat: PhpdocTypesOrderFixer Support DNF types (#​7732)
  • fix: Support shebang in fixers operating on PHP opening tag (#​7687)
  • fix: work correctly for a switch/case with ternary operator (#​7756)
  • fix: NoUselessConcatOperatorFixer - do not remove new line (#​7759)

v3.47.1

Compare Source

  • fix: Do not override short name with relative reference (#​7752)
  • fix: make BinaryOperatorSpacesFixer work as pre-v3.47 (#​7751)
  • fix: Proper Docker image name suffix (#​7739)
  • fix: FullyQualifiedStrictTypesFixer - do not change case of the symbol when there's name collision between imported class and imported function (#​7750)
  • fix: FullyQualifiedStrictTypesFixer - do not modify statements with property fetch and :: (#​7749)

v3.47.0

Compare Source

  • chore: better identify EXPERIMENTAL rules (#​7729)
  • chore: fix issue detected by unlocked PHPStan + upgrade dev-tools (#​7678)
  • chore: handle extract() (#​7684)
  • chore: Mention contributors in app info (#​7668)
  • chore: no need to mark private methods as internal (#​7715)
  • chore: ProjectCodeTests - dry for function usage extractions (#​7690)
  • chore: reduce PHPStan baseline (#​7644)
  • chore: use numeric literal separator for PHP version IDs (#​7712)
  • chore: use numeric_literal_separator for project (#​7713)
  • chore: Utils::sortElements - better typing (#​7646)
  • CI: Allow running Stale Bot on demand (#​7711)
  • CI: Fix PHP 8.4 (#​7702)
  • CI: Give write permissions to Stale Bot (#​7716)
  • CI: Use actions/stale v9 (#​7710)
  • docs: Add information about allowing maintainers to update PRs (#​7683)
  • docs: CONTRIBUTING.md - update Opening a PR (#​7691)
  • docs: Display/include tool info/version by default in commands and reports (#​7733)
  • DX: fix deprecation tests warnings for PHP 7.4 (#​7725)
  • DX: update host.docker.internal in Compose override template (#​7661)
  • DX: NumericLiteralSeparatorFixer - change default strategy to use_separator (#​7730)
  • feat: Add support for official Docker images of Fixer (#​7555)
  • feat: Add spacing option to PhpdocAlignFixer (#​6505)
  • feat: Add union_types option to phpdoc_to_param_type, phpdoc_to_property_type, and phpdoc_to_return_type fixers (#​7672)
  • feat: Introduce heredoc_closing_marker fixer (#​7660)
  • feat: Introduce multiline_string_to_heredoc fixer (#​7665)
  • feat: Introduce NumericLiteralSeparatorFixer (#​6761)
  • feat: no_superfluous_phpdoc_tags - support for arrow function (#​7666)
  • feat: Simplify closing marker when possible in heredoc_closing_marker fixer (#​7676)
  • feat: Support typed properties and attributes in fully_qualified_strict_types (#​7659)
  • feat: @PhpCsFixer ruleset - enable no_whitespace_before_comma_in_array.after_heredoc (#​7670)
  • fix: Improve progress bar visual layer (#​7708)
  • fix: indentation of control structure body without braces (#​7663)
  • fix: make sure all PHP extensions required by PHPUnit are installed (#​7727)
  • fix: PhpdocToReturnTypeFixerTest - support for arrow functions (#​7645)
  • fix: Several improvements for fully_qualified_strict_types (respect declared symbols, relative imports, leading backslash in global namespace) (#​7679)
  • fix: SimplifiedNullReturnFixer - support array return typehint (#​7728)
  • fix: Support numeric values without leading zero in numeric_literal_separator (#​7735)
  • fix: BinaryOperatorSpacesFixer - align correctly when multiple shifts occurs in single line (#​7593)
  • fix: ClassReferenceNameCasingFixer capitalizes the property name after the nullsafe operator (#​7696)
  • fix: fully_qualified_strict_types with leading_backslash_in_global_namespace enabled - handle reserved types in phpDoc (#​7648)
  • fix: NoSpaceAroundDoubleColonFixer must run before MethodChainingIndentationFixer (#​7723)
  • fix: no_superfluous_phpdoc_tags must honour multiline docs (#​7697)
  • fix: numeric_literal_separator - Handle zero-leading floats properly (#​7737)
  • refactor: increase performance by ~7% thanks to Tokens::block*Cache hit increased by ~12% (#​6176)
  • refactor: Tokens - fast check for non-block in 'detectBlockType', evaluate definitions only once in 'getBlockEdgeDefinitions' (#​7655)
  • refactor: Tokens::clearEmptyTokens - play defensive with cache clearing (#​7658)
  • test: ensure we do not forget to test any short_open_tag test (#​7638)

v3.46.0

Compare Source

  • chore: fix internal typehints in Tokens (#​7656)
  • chore: reduce PHPStan baseline (#​7643)
  • docs: Show class with unit tests and BC promise info (#​7667)
  • feat: change default ruleset to @PER-CS (only behind PHP_CS_FIXER_FUTURE_MODE=1) (#​7650)
  • feat: Support new/instanceof/use trait in fully_qualified_strict_types (#​7653)
  • fix: FQCN parse phpdoc using full grammar regex (#​7649)
  • fix: Handle FQCN properly with leading_backslash_in_global_namespace option enabled (#​7654)
  • fix: PhpdocToParamTypeFixerTest - support for arrow functions (#​7647)
  • fix: PHP_CS_FIXER_FUTURE_MODE - proper boolean validation (#​7651)

v3.45.0

Compare Source

  • feat: Enable symbol importing in @PhpCsFixer ruleset (#​7629)
  • fix: NoUnneededBracesFixer - improve handling of global namespace (#​7639)
  • test: run tests with "short_open_tag" enabled (#​7637)

v3.44.0

Compare Source

  • feat: Introduce percentage bar as new default progress output (#​7603)

v3.43.1

Compare Source

  • fix: Import only unique symbols' short names (#​7635)

v3.43.0

Compare Source

  • chore: change base of @Symfony set to @PER-CS2.0 (#​7627)
  • chore: PHPUnit - allow for v10 (#​7606)
  • chore: Preg - rework catching the error (#​7616)
  • chore: Revert unneeded peer-dep-pin and re-gen lock file (#​7618)
  • docs: drop extra note about 8.0.0 bug in README.md (#​7614)
  • feat: add cast_spaces into @PER-CS2.0 (#​7625)
  • feat: Configurable phpDoc tags for FQCN processing (#​7628)
  • feat: StatementIndentationFixer - introduce stick_comment_to_next_continuous_control_statement config (#​7624)
  • feat: UnaryOperatorSpacesFixer - introduce only_dec_inc config (#​7626)
  • fix: FullyQualifiedStrictTypesFixer - better support annotations in inline {} (#​7633)
  • fix: Improve how FQCN is handled in phpDoc (#​7622)
  • fix: phpdoc_align - fix multiline tag alignment issue (#​7630)

v3.42.0

Compare Source

  • chore: aim to not rely on internal array pointer but use array_key_first (#​7613)
  • chore: deprecate Token::isKeyCaseSensitive (#​7599)
  • chore: deprecate Token::isKeyCaseSensitive, 2nd part (#​7601)
  • chore: do not check PHP_VERSION_ID (#​7602)
  • chore: FileFilterIteratorTest - more accurate type in docs (#​7542)
  • chore: minor code cleanup (#​7607)
  • chore: more types (#​7598)
  • chore: PHPDoc key-value spacing (#​7592)
  • chore: PHPUnit - run defects first (#​7570)
  • chore: ProjectCodeTest - DRY on Tokens creation (#​7574)
  • chore: ProjectCodeTest - prepare for symfony/console v7 (#​7605)
  • chore: ProjectCodeTest::provide*ClassCases to return iterable with key for better tests execution log (#​7572)
  • chore: ProjectCodeTest::testDataProvidersDeclaredReturnType - use better DataProvider to simplify test logic (#​7573)
  • chore: TokensAnalyzer - string-enum for better typehinting (#​7571)
  • chore: unify tests not agnostic of PHP version (#​7581)
  • chore: use ::class more (#​7545)
  • CI: Introduce composer-unused (#​7536)
  • DX: add types to anonymous functions (#​7561)
  • DX: Allow running smoke tests within Docker runtime (#​7608)
  • DX: check fixer's options for wording (#​7543)
  • DX: cleanup deprecation message (#​7576)
  • DX: do not allow overriding constructor of PHPUnit\Framework\TestCase (#​7563)
  • DX: do not import ExpectDeprecationTrait in UtilsTest (#​7562)
  • DX: Enforce consistent naming in tests (#​7556)
  • DX: fix checking test class extends PhpCsFixer\Tests\TestCase (#​7567)
  • DX: make sure that exceptions in AbstractFixerTestCase::testProperMethodNaming are not already fixed (#​7588)
  • DX: remove recursion from AbstractIntegrationTestCase::testIntegration (#​7577)
  • DX: remove PhpUnitNamespacedFixerTest::testClassIsFixed (#​7564)
  • DX: remove symfony/phpunit-bridge (#​7578)
  • DX: replace fixture classes with anonymous ones (#​7533)
  • DX: Unify Docker mount points and paths (#​7549)
  • DX: unify fixer's test method names - quick wins (#​7584)
  • DX: unify tests for casing fixers (#​7558)
  • DX: use anonymous function over concrete classes (#​7553)
  • feat(EXPERIMENTAL): ClassKeywordFixer (#​2918)
  • feat(EXPERIMENTAL): ClassKeywordFixer, part 2 (#​7550)
  • feat(PhpdocToCommentFixer): Add option to handle return as valid docblock usage (#​7401) (#​7402)
  • feat: Ability to import FQCNs found during analysis (#​7597)
  • feat: add phpDoc support for fully_qualified_strict_types fixer (#​5620)
  • feat: Handle deprecated rule sets similarly to deprecated fixers (#​7288)
  • feat: PhpUnitTestCaseStaticMethodCallsFixer - cover PHPUnit v10 methods (#​7604)
  • feat: Support more FQCNs cases in fully_qualified_strict_types (#​7459)
  • fix: AbstractFixerTestCase - fix checking for correct casing (#​7540)
  • fix: Better OS detection in integration tests (#​7547)
  • fix: NativeTypeDeclarationCasingFixer - handle static property without type (#​7589)
  • test: AutoReview - unify data provider returns (#​7544)
  • test: check to have DataProviders code agnostic of PHP version (#​7575)

v3.41.1

Compare Source

  • DX: Change @testWith to @dataProvider (#​7535)
  • DX: Introduce Markdownlint (#​7534)
  • fix: NativeTypeDeclarationCasingFixer - do not crash on var keyword (#​7538)

v3.41.0

Compare Source

  • chore: Move mb_str_functions PHP 8.3 cases to separate test (#​7505)
  • chore: Symfony v7 is now stable (#​7469)
  • CI: drop PHP 8.3 hacks (#​7519)
  • docs: Improve docs for no_spaces_after_function_name (#​7520)
  • DX: Ability to run Sphinx linter locally (#​7481)
  • DX: AbstractFixerTest - use anonymous classes (#​7527)
  • DX: Add progress output for cs:check script (#​7514)
  • DX: align doubles naming (#​7525)
  • DX: remove AbstractFixerTestCase::getTestFile() (#​7495)
  • DX: remove jangregor/phpstan-prophecy (#​7524)
  • DX: remove Prophecy (#​7509)
  • DX: replace Prophecy with anonymous classes in CacheTest (#​7503)
  • DX: replace Prophecy with anonymous classes in ProcessLintingResultTest (#​7501)
  • DX: Utilise auto-discovery for PHPStan formatter (#​7490)
  • feat: Support mb_str_pad function in mb_str_functions rule (#​7499)
  • fix: BinaryOperatorSpacesFixer - do not add whitespace inside short function (#​7523)
  • fix: Downgrade PDepend to version not supporting Symfony 7 (#​7513)
  • fix: GlobalNamespaceImportFixer - key in PHPDoc's array shape matching class name (#​7522)
  • fix: SpacesInsideParenthesesFixer - handle class instantiation parentheses (#​7531)
  • Update PHPstan to 1.10.48 (#​7532)

v3.40.2

Compare Source

  • docs: fix link to source classes (#​7493)

v3.40.1

Compare Source

  • chore: Delete stray file x (#​7473)
  • chore: Fix editorconfig (#​7478)
  • chore: Fix typos (#​7474)
  • chore: Fix YAML line length (#​7476)
  • chore: Indent JSON files with 4 spaces (#​7480)
  • chore: Make YAML workflow git-based (#​7477)
  • chore: Use stable XDebug (#​7489)
  • CI: Lint docs (#​7479)
  • CI: Use PHPStan's native Github error formatter (#​7487)
  • DX: fix PHPStan error (#​7488)
  • DX: PsrAutoloadingFixerTest - do not build mock in data provider (#​7491)
  • DX: PsrAutoloadingFixerTest - merge all data providers into one (#​7492)
  • DX: Update PHPStan to 1.10.46 (#​7486)
  • fix: NoSpacesAfterFunctionNameFixer - do not remove space if the opening parenthesis part of an expression (#​7430)

v3.40.0

Compare Source

  • chore: officially support PHP 8.3 (#​7466)
  • chore: update deps (#​7471)
  • CI: add --no-update while dropping non-compat facile-it/paraunit (#​7470)
  • CI: automate --ignore-platform-req=PHP (#​7467)
  • CI: bump actions/github-script to v7 (#​7468)
  • CI: move humbug/box out of dev-tools/composer.json (#​7472)

v3.39.1

Compare Source

  • DX: introduce SwitchAnalyzer (#​7456)
  • fix: NoExtraBlankLinesFixer - do not remove blank line after ? : throw (#​7457)
  • fix: OrderedInterfacesFixer - do not comment out interface (#​7464)
  • test: Improve ExplicitIndirectVariableFixerTest (#​7451)

v3.39.0

Compare Source

  • chore: Add support for Symfony 7 (#​7453)
  • chore: IntegrationTest - move support of php< requirement to main Integration classes (#​7448)
  • CI: drop Symfony ^7 incompat exceptions of php-coveralls and cli-executor (#​7455)
  • CI: early compatibility checks with Symfony 7 (#​7431)
  • docs: drop list.rst and code behind it (#​7436)
  • docs: remove Gitter mentions (#​7441)
  • DX: Ability to run Fixer on PHP8.3 for development (#​7449)
  • DX: describe command - for rules, list also sets that are including them (#​7419)
  • DX: Docker clean up (#​7450)
  • DX: more usage of spaceship operator (#​7438)
  • DX: Put Preg's last error message in exception message (#​7443)
  • feat: Introduce @PHP83Migration ruleset and PHP 8.3 integration test (#​7439)
  • test: Improve AbstractIntegrationTestCase description (#​7452)

v3.38.2

Compare Source

  • docs: fix 'Could not lex literal_block as "php". Highlighting skipped.' (#​7433)
  • docs: small unification between FixerDocumentGenerator and ListDocumentGenerator (#​7435)
  • docs: unify ../ <> ./../ (#​7434)

v3.38.1

Compare Source

  • chore: ListSetsCommand::execute - add missing return type (#​7432)
  • chore: PHPStan - add counter to dataProvider exception, so we do not increase the tech debt on it (#​7425)
  • CI: Use actions/checkout v4 (#​7423)
  • fix: ClassAttributesSeparationFixer - handle Disjunctive Normal Form types parentheses (#​7428)
  • fix: Remove all variable names in @var callable signature (#​7429)
  • fix: Satisfy composer normalize (#​7424)

v3.38.0

Compare Source

  • chore: upgrade phpstan (#​7421)
  • CI: add curl and mbstring to build php (#​7409)
  • CI: cache dev-tools/bin (#​7416)
  • CI: Composer - move prefer-stable to file config (#​7406)
  • CI: conditionally install flex (#​7412)
  • CI: dev-tools/build.sh - no need to repeat 'prefer-stable', but let's use '--no-scripts' (#​7408)
  • CI: Do not run post-autoload-dump on Composer install (#​7403)
  • CI: general restructure (#​7407)
  • CI: GitHub Actions - use actions/cache for Composer in composite action (#​7415)
  • CI: Improve QA process - supplement (#​7411)
  • CI: prevent Infection plugins during build time, as we do not use it (#​7422)
  • CI: simplify setup-php config (#​7404)
  • DX: Do not mark as stale issues/PRs with milestone assigned (#​7398)
  • DX: Improve QA process (#​7366)
  • feat: phpDoc to property/return/param Fixer - allow fixing mixed on PHP >= 8 (#​6356)
  • feat: phpDoc to property/return/param Fixer - allow fixing union types on PHP >= 8 (#​6359)
  • feat: Support for array destructuring in array_indentation (#​7405)
  • feat: @Symfony - keep Annotation,NamedArgumentConstructor,Target annotations as single group (#​7399)
  • fix(SelfAccessorFixer): do not touch references inside lambda and/or arrow function (#​7349)
  • fix: long_to_shorthand_operator - mark as risky fixer (#​7418)
  • fix: OrderedImportsFixer - handle non-grouped list of const/function imports (#​7397)

v3.37.1

Compare Source

  • docs: config file - provide better examples (#​7396)
  • docs: config file - provide better link to Finder docs (#​6992)

v3.37.0

Compare Source

  • feat: add parallel cache support (#​7131)

v3.36.0

Compare Source

  • chore: disable infection-installer plugin, as we do not use infection/* yet (#​7391)
  • chore: Run dev-tools on PHP 8.2 (#​7389)
  • CI: Run Symfony 6 compat check on PHP 8.1 (#​7383)
  • CI: use fast-linter when calculating code coverage (#​7390)
  • docs: extend example for nullable_type_declaration (#​7381)
  • DX: FixerFactoryTest - make assertion failing msg more descriptive (#​7387)
  • feat: PhpdocSummaryFixer - support lists in description (#​7385)
  • feat: PSR12 - configure unary_operator_spaces (#​7388)
  • feat: StatementIndentationFixer - support comment for continuous control statement (#​7384)

v3.35.1

Compare Source

  • fix: Mark PhpdocReadonlyClassCommentToKeywordFixer as risky (#​7372)

v3.35.0

Compare Source

  • chore: Autoreview: test all formats are listed in usage.rst (#​7357)
  • chore: no need for phpunitgoodpractices/traits anymore (#​7362)
  • chore: Rename indexes to indices (#​7368)
  • chore: stop using phpunitgoodpractices/traits (#​7363)
  • chore: typo (#​7367)
  • docs: Sort options in documentation (#​7345)
  • feat(PhpdocReadonlyClassCommentToKeywordFixer): Introduction (#​7353)
  • feat: Ability to keep/enforce leading \ when in global namespace (#​7186)
  • feat: Update @PER-CS2.0 to match short closure space (#​6970)
  • feat: use ordered_types in @PhpCsFixer (#​7361)
  • fix(SingleLineThrowFixer): fixer goes out of range on close tag (#​7369)

v3.34.1

Compare Source

  • deps: revert "prevent using PHPCSFixer along with unfinalize package (#​7343)" (#​7348)

v3.34.0

Compare Source

  • feat: Introduce check command (alias for fix --dry-run) (#​7322)

v3.33.1: The Old Guard

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.33.0...v3.33.1

v3.33.0

Compare Source

  • feat: Introduce native_type_declaration_casing fixer (#​7330)

v3.32.1: Deprecation train

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.32.0...v3.32.1

v3.32.0

Compare Source

  • deps: Prevent using PHPCSFixer along with unfinalize package (#​7343)
  • feat: Deprecate CompactNullableTypehintFixer and proxy to CompactNullableTypeDeclarationFixer (#​7339)
  • feat: Deprecate CurlyBracesPositionFixer and proxy to BracesPositionFixer (#​7334)
  • feat: Deprecate NewWithBracesFixer and proxy to NewWithParenthesesFixer (#​7331)
  • feat: Deprecate NoUnneededCurlyBracesFixer and proxy to NoUnneededBracesFixer (#​7335)
  • feat: Rename CurlyBraceTransformer to BraceTransformer (#​7333)

v3.31.0

Compare Source

  • chore: Use type declaration instead of type hint (#​7338)
  • feat: Introduce attribute_placement option for MethodArgumentSpaceFixer (#​7320)
  • fix: Adjust wording related to deprecations (#​7332)
  • fix: Correct deprecation header in rules' docs (#​7337)
  • fix: Replace mention of bracket with parenthesis (#​7336)
  • fix: FunctionToConstantFixer should run before NativeConstantInvocationFixer (#​7344)

v3.30.0

Compare Source

  • feat: Introduce AttributeEmptyParenthesesFixer (#​7284)
  • fix(method_argument_space): inject new line after trailing space on current line (#​7327)
  • fix(YodaStyleFixer): do not touch require(_once), include(_once) and yield from statements (#​7325)
  • fix: illegal offset type on file-wide return in ReturnToYieldFromFixer (#​7318)

v3.29.0

Compare Source

  • chore: fix TODO tasks about T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG support (#​7316)
  • feat(@PhpCsFixer:risky): use newest @PER-CS:risky instead of locked @PER-CS2.0:risky (#​7323)
  • feat: Introduce @PER-CS ruleset (#​7321)
  • fix: priority issue between array_syntax and space after rules (#​7324)

v3.28.0

Compare Source

  • chore(prlint): allow for 'deps' type (#​7304)
  • CI(prlint): allow for special chars in parentheses (#​7308)
  • deps(dev-tools): update dev-tools (#​7309)
  • DX: Bump XDebug version in Docker services (#​7300)
  • feat(@PER-CS2.0): Add concat_space to the ruleset (#​7302)

v3.27.0

Compare Source

  • docs: cleanup old mention of --show-progress=estimating in docs (#​7287)
  • DX: add Composer script for applying CS fixes in parallel (#​7274)
  • feat: Clone PER-CS1.0 to PER-CS2.0 to prepare for adding new rules (#​7249)
  • feat: Introduce LongToShorthandOperatorFixer (#​7295)
  • feat: Mark PER-CS v1 as deprecated (#​7283)
  • feat: Move single_line_empty_body to @PER-CS2.0 (#​7282)
  • fix: Priorities for fixers related to curly braces, empty lines and trailing whitespace (#​7296)
  • fix: OrderedTraitsFixer - better support for multiple traits in one use statement (#​7289)

v3.26.1

Compare Source

  • fix: Handle superfluous asterisk in no_superfluous_phpdoc_tags (#​7279)

v3.26.0

Compare Source

  • chore(checkbashisms): update to 2.23.6 (#​7276)
  • chore(phpstan): reduce baseline (#​7275)
  • feat: Add single_line_empty_body to @PhpCsFixer (#​7266)
  • fix(YieldFromArrayToYieldsFixer): mark as Risky (#​7272)
  • fix(YieldFromArrayToYieldsFixer): skip touching empty array (#​7273)
  • test: Introduce common way of creating fake Composer project in InstallViaComposerTest (#​7265)

v3.25.1

Compare Source

  • fix: PhpdocTypesFixer - do not crash for type followed by braces/brackets/chevrons/parentheses (#​7268)

v3.25.0

Compare Source

  • feat: Remove Doctrine dependencies (#​7263)

v3.24.0

Compare Source

  • chore: apply CS (#​7240)
  • chore: apply static_lambda rule (#​7239)
  • chore: Improve template for creating new issue (#​7255)
  • CI: Conventional Commits support in PRLint config (#​7037)
  • CI: Remove Travis leftovers (#​7259)
  • docs: Add information about installing Fixer as dev dependency (#​7129)
  • docs: document composer script aliases (#​7230)
  • DX: Add script for running Composer Require Checker (#​7252)
  • DX: composer script aliases - ensure templated description (#​7235)
  • DX: composer-script - count PHPMD as static-analysis (#​7231)
  • DX: do not allow version specific code sample with minimum PHP version lower than the lowest supported one (#​7207)
  • DX: ensure version specific code samples are suitable for at least 1 supported PHP version (#​7212)
  • DX: Improve contributing guide (#​7241)
  • DX: More descriptive stale messages (#​7236)
  • feat(@​PhpCsFixer:risky): add static_lambda rule (#​7237)
  • feat: Add literal separator support for integer_literal_case (#​7081)
  • feat: Configurable case sensitivity for more ordering fixers (#​7021)
  • feat: Support for attributes in method_argument_space (#​7242)
  • fix: import detection for attributes at NoUnusedImportsFixer (#​7246)
  • fix: no_superfluous_phpdoc_tags with null phpdoc (#​7234)
  • fix: phpdoc_types must not lowercase literal types (#​7108)
  • test: Add static methods from PHPUnit 9.6.11 (#​7243)

v3.23.0

Compare Source

  • bug: BlankLineBeforeStatementFixer - do not enforce/add a blank line when there is a blank line between the comment and the statement already (#​7190)
  • bug: Fix detecting classy invocation in catch (#​7191)
  • bug: Fix names resolving in no_superfluous_phpdoc_tags fixer (#​7189)
  • bug: Fix various bugs in FullyQualifiedStrictTypesFixer fixer (#​7188)
  • bug: Fixed line between general script documentation and require (#​7177)
  • bug: Support annotations with arguments in FinalInternalClassFixer (#​7160)
  • bug: YieldFromArrayToYieldsFixer - fix for yield from after } (#​7169)
  • bug: YieldFromArrayToYieldsFixer - fix handling the comment before the first array element (#​7193)
  • bug: HeaderCommentFixer must run before BlankLinesBeforeNamespaceFixer (#​7205)
  • bug: NoUselessReturnFixer must run before SingleLineEmptyBodyFixer (#​7226)
  • bug: PhpdocInlineTagNormalizerFixer - do not break tags (#​7227)
  • docs: Add allowed values of tags in the phpdoc_align (#​7120)
  • docs: Add extra information for GitLab reporter's integration with GitLab Code Quality (#​7172)
  • docs: Change the single backticks to double in description of the rules option (#​7173)
  • docs: Condensed output for rule sets' list that fixer is included in (#​7182)
  • docs: Improve contributing guide (#​7204)
  • docs: MethodArgumentSpaceFixer - mention PSR in Fixer definition (#​7157)
  • DX: add first auto-review tests for composer.json file (#​7210)
  • DX: add YieldFromArrayToYieldsFixer to PhpCsFixer set (#​7115)
  • DX: Allow OS conditions for integration tests (#​7161)
  • DX: Apply current CS rules (#​7178)
  • DX: Apply suggestions from PR 7210 (#​7213)
  • DX: apply ReturnToYieldFromFixer (#​7181)
  • DX: Do not mark "long term ideas" as stale (#​7206)
  • DX: enable HeredocIndentationFixer for the codebase (#​7195)
  • DX: enable UseArrowFunctionsFixer for the codebase (#​7194)
  • DX: few phpstan fixes (#​7208)
  • DX: fix contravariant types in PHPDocs (#​7167)
  • DX: Fix detecting trailing spaces (#​7216)
  • DX: Fix some PHPStan issues (#​7180)
  • DX: Get rid of deprecation warnings in Mess Detector (#​7215)
  • DX: Improve Composer scripts (#​7214)
  • DX: Improve Mess Detector Integration (#​7224)
  • DX: Introduce Composer scripts as common DX (#​6839)
  • DX: refactor ErrorOutputTest (#​7183)
  • DX: remove unnecessary arrays from data providers (#​7170)
  • DX: update CurlyBracesPositionFixer code samples (#​7198)
  • DX: update HeredocIndentationFixer code samples (#​7197)
  • DX: update PhpdocToReturnTypeFixer code samples (#​7199)
  • feature: add at least one space around binary operators (#​7175)
  • feature: BlankLineBeforeStatementFixer - take into account comment before statement (#​7166)
  • feature: Introduce ReturnToYieldFromFixer (#​7168)
  • feature: Introduce SpacesInsideParenthesesFixer (#​5709)
  • feature: Support array destructuring in trim_array_spaces (#​7218)
  • feature: BlankLineBeforeStatementFixer - skip enum cases (#​7203)
  • minor: more arrow function usage (#​7223)
  • minor: PhpdocAlignFixerTest - convert CUSTOM tags test to not rely on non-custom tag from TAGS_WITH_NAME (#​7209)
  • minor: use JSON_THROW_ON_ERROR for trivial cases (#​7221)
  • minor: use more spread operator (#​7222)

v3.22.0

Compare Source

  • DX: add proper test for SelfAccessorFixer must run before SelfAccessorFixer (#​7153)
  • DX: FixerFactoryTest - apply CS (#​7154)
  • feature: Introduce PhpUnitDataProviderReturnTypeFixer (#​7156)
  • feature: Introduce YieldFromArrayToYieldsFixer (#​7114)

v3.21.3

Compare Source

  • Revert "DX: encourage to provide wider description" (#​7155)

v3.21.2

Compare Source

  • docs: check format of FixerDefinition::getDescription() (#​7127)
  • DX: add phpstan/phpstan-strict-rules (#​7143)
  • DX: allow for progressive cache (#​7132)
  • DX: Copy-pasteable class::getPriority for phpDoc diffs (#​7148)
  • DX: do not allow linebreak at the beginning of code sample (#​7126)
  • DX: encourage to provide wider description (#​7128)
  • DX: fix function calls (#​7136)
  • DX: fix PHPDoc types issues (#​7135)
  • DX: improve Tokens checking for found tokens (#​7139)
  • DX: Make AbstractFixerTestCase::getTestFile() final (#​7116)
  • DX: make array_search call strict (#​7145)
  • DX: remove empty calls (#​7138)
  • DX: store cache to file only if content will get modified (#​7151)
  • DX: unify Preg:match in logical conditions (#​7146)
  • DX: use booleans in conditions (#​7149)
  • DX: Use ParaUnit to speed up tests (#​6883)
  • DX: Use relative fixture path as integration test case's name (#​7147)
  • DX: use strict assertions (#​7144)
  • DX: AbstractIntegrationTestCase::provideIntegrationCases - yield over array, better typehinting (#​7150)

v3.21.1

Compare Source

experimental release

  • Require PHP ^8.0.1

v3.21.0

Compare Source

  • bug: Fix and enhance Gitlab reporter (#​7089)
  • bug: Import with different case must not be removed by non-risky fixer (#​7095)
  • bug: ordered imports fixer top group only (#​7023)
  • bug: FinalPublicMethodForAbstractClassFixer - fix for readonly classes (#​7123)
  • DX: do not nest ".editorconfig" files (#​7112)
  • DX: exclude Dockerfile from dist (#​7113)
  • DX: fix checkbashisms installation (#​7102)
  • DX: fix Smoke tests for various git default branch name (#​7119)
  • DX: Fix FileRemovalTest (do not fail when running it standalone) (#​7104)
  • DX: Progress output refactor (#​6848)
  • DX: Rename abstract test classes to *TestCase convention (#​7100)
  • DX: test all PHPUnit migration sets (#​7107)
  • DX: [Docker] Distinguish Alpine version between PHP versions (#​7105)
  • feature: Create cache path if it does not exist (#​7109)
  • feature: Introduce NullableTypeDeclarationFixer (#​7002)
  • feature: Introduce TypeDeclarationSpacesFixer (#​7001)
  • feature: BlankLineBetweenImportGroupsFixer - keep indent (#​7122)
  • minor: Parse callable using full phpdoc grammar (#​7094)
  • minor: PHP8.3 const type tokenizing (#​7055)

v3.20.0

Compare Source

  • DX: fix priority of FinalClassFixer (#​7091)
  • DX: use FAST_LINT_TEST_CASES=1 for CI run on macOS (#​7092)
  • feature: SingleLineEmptyBodyFixer - support interfaces, traits and enums (#​7096)
  • feature: NullableTypeDeclarationForDefaultNullValue - support for nullability in union types (#​5819)

v3.19.2

Compare Source

  • bug: NoMultipleStatementsPerLineFixer must run before CurlyBracesPositionFixer (#​7087)
  • bug: PhpdocAddMissingParamAnnotationFixer - fix for promoted properties (#​7090)
  • DX: fix priority of SingleBlankLineBeforeNamespaceFixer (#​7088)
  • minor: Parse all phpdoc types using full grammar (#​7010)

v3.19.1

Compare Source

  • bug: CurlyBracesPositionFixer must run before StatementIndentationFixer (#​7085)

v3.19.0

Compare Source

  • bug: SelfAccessorFixer - fix for union types (#​7080)
  • DX: add php_unit_data_provider_name to @PhpCsFixer:risky set (#​7069)
  • DX: make data providers return type "iterable" (#​7072)
  • DX: rename tests and data providers (#​7070)
  • feature: Introduce PhpUnitDataProviderNameFixer (#​7057)

v3.18.0

Compare Source

  • bug: Fix tokenizing of type hints (#​7054)
  • bug: CompactNullableTypehintFixer - fix for whitespace between ? and static (#​6993)
  • bug: consider function modifiers for statement_indentation (#​6978)
  • bug: Exclude $this from TernaryToNullCoalescingFixer (#​7052)
  • bug: False positive on used imports when docblock includes it with mismatching case (#​6909)
  • bug: Fix chained calls semicolon indent in switch case (#​7045)
  • bug: Fix multiline_whitespace_before_semicolons for echo tags (#​7019)
  • bug: Fix phpDoc align when there is inconsistent spacing after comment star (#​7012)
  • bug: Fix phpDoc parsing without PCRE JIT (#​7031)
  • bug: Fix PhpdocVarWithoutNameFixer with Closure with $this (#​6979)
  • bug: Fix return_assignment not formatting when variables are used in catch and finally (#​6960)
  • bug: Fix TypeExpression::allowsNull() with nullable (#​7000)
  • bug: Improve definition of conflicting fixers (#​7066)
  • bug: LambdaNotUsedImportFixer - fix for anonymous class with a string argument (#​6972)
  • bug: ListFilesCommand - fix computing of relative path (#​7028)
  • bug: make php_unit_namespaced less greedy (#​6952)
  • bug: PhpdocToCommentFixer - fix for PHPDoc before fn (#​6973)
  • bug: Restructure PER-CS rule sets (#​6707)
  • bug: SelfStaticAccessor - fix static access inside enums (#​7024)
  • bug: SingleSpaceAroundConstructFixer - fix more cases involving static (#​6995)
  • bug: FullyQualifiedStrictTypesFixer - fix shortening when namespace is not empty and import exists (#​7027)
  • bug: NoUnneededControlParenthesesFixer PHP8.0 null-safe operator (#​7056)
  • bug: PhpdocToCommentFixer support for enum cases (#​7040)
  • DX: add more tests to CommentsAnalyzer (#​7041)
  • DX: Cleanup duplicate files in finder (#​7042)
  • DX: ControlCaseStructuresAnalyzerTest - cleanup (#​6874)
  • DX: Fix warning when running test on PHP<8 (#​7008)
  • DX: handle @ in PR title (#​6982)
  • DX: officially deprecate internal Utils anti-pattern class (#​7039)
  • DX: Remove Fabbot.io conditional configuration (#​7038)
  • DX: rename data providers (#​7058)
  • DX: Use actions/stale to handle stale issues and pull requests (#​5085)
  • DX: Use Utils::naturalLanguageJoin() in implode calls (#​7032)
  • feature: Add support for custom method placement in ordered_class_elements (#​6360)
  • feature: Allow case sensitive order for OrderedClassElementsFixer (#​7020)
  • feature: PHP8.3 - Add CT and block type for Dynamic class constant fetch (#​7004)
  • feature: Support attributes in FinalClassFixer (#​6893)
  • minor: "Callback" must not be fixed to "callback" by default (#​7011)
  • minor: Add Util::naturalLanguageJoin() (#​7022)
  • minor: ClassDefinitionFixer - handle attributes and readonly in anonymous class definitions (#​7014)
  • minor: FixerFactory::getFixersConflicts - better type hinting (#​7044)
  • minor: PHP8.3 - Fix TokensAnalyzer::isAnonymousClass support for readonly (#​7013)
  • minor: PHP8.3 - Typed class constants - handle nullable by transformer (#​7009)
  • minor: Reduce phpDoc type parser complexity from O(n^2) to O(nlog(n)) (#​6988)
  • minor: ReturnAssignmentFixer - Better handling of anonymous classes (#​7015)
  • minor: Transfer HelpCommand::toString() to Utils (#​7034)
  • minor: Unify "blank lines before namespace" fixers (#​7053)
  • minor: SelfStaticAccessorFixer improvements for enums (#​7026)
  • minor: SingleSpaceAroundConstructFixer - support space before as (#​7029)
  • minor: UseArrowFunctionsFixer - run before FunctionDeclarationFixer (#​7065)

v3.17.0

Compare Source

  • bug: Allow string quote to be escaped within phpdoc constant (#​6798)
  • bug: ConfigurationResolver - fix running without cache (#​6915)
  • bug: Fix array/object shape phpdoc type parse (#​6962)
  • bug: Fix FullyQualifiedStrictTypesFixer common prefix bug (#​6898)
  • bug: Fix non-parenthesized callable return type parse (#​6961)
  • bug: Fix parsing of edge cases phpdoc types (#​6977)
  • bug: FullyQualifiedStrictTypesFixer - fix for FQCN type with class with the same name being imported (#​6923)
  • bug: GroupImportFixer - support for aliased imports (#​6951)
  • bug: MultilineWhitespaceBeforeSemicolonsFixer - fix chained calls (#​6926)
  • bug: MultilineWhitespaceBeforeSemicolonsFixer - fix for discovering multi line calls (#​6938)
  • bug: NoBreakCommentFixer - fix for nested match (#​6899)
  • bug: NoExtraBlankLinesFixer - fix for attribute in abstract function (#​6920)
  • bug: PhpdocTypesFixer - handle types with no space between type and variable (#​6922)
  • bug: PhpUnitMockShortWillReturnFixer - fix for trailing commas (#​6900)
  • bug: StatementIndentationFixer - fix comments at the end of if/elseif/else blocks (#​6918)
  • bug: StatementIndentationFixer - fix for multiline arguments starting with "new" keyword (#​6913)
  • bug: StatementIndentationFixer - fix for multiline arguments starting with "new" keyword preceded by class instantiation (#​6914)
  • bug: VoidReturnFixer - fix for intervening attributes (#​6863)
  • docs: improve code samples for MultilineWhitespaceBeforeSemicolonsFixer (#​6919)
  • docs: improve cookbook (#​6880)
  • DX: add cache related tests (#​6916)
  • DX: Apply self_static_accessor fixer to the project (again) (#​6927)
  • DX: cancel running builds on subsequent pushes in CI (#​6940)
  • DX: convert more static to self assert calls (#​6931)
  • DX: fix GitHub Actions errors and warnings (#​6917)
  • DX: fix Unsafe call to private method errors reported by PHPStan (#​6879)
  • DX: Improve performance of FunctionsAnalyzer (#​6939)
  • DX: improve test method names to avoid confusion (#​6974)
  • DX: Include self_static_accessor fixer in PhpCsFixer set (#​6882)
  • DX: make data providers static with straight-forward changes (#​6907)
  • DX: Mark Tokens::getNamespaceDeclarations as @​internal (#​6949)
  • DX: PHPStan improvements (#​6868)
  • DX: refactor PhpdocAlignFixerTest (#​6925)
  • DX: Remove @​inheritdoc PHPDoc (#​6955)
  • DX: Run AutoReview tests only once (#​6889)
  • DX: simplify EncodingFixer (#​6956)
  • DX: update Symfony rule set (#​6958)
  • DX: Use $tokens->getNamespaceDeclarations() to improve performance (#​6942)
  • DX: use force option for php_unit_data_provider_static in PHPUnit 10.0 migration set (#​6908)
  • DX: use only PHP modules that are required (#​6954)
  • DX: use PHPUnit's "requires" instead of "if" condition (#​6975)
  • feature: Add align_multiline_comment rule to @​Symfony (#​6875)
  • feature: Add no_null_property_initialization rule to @​Symfony (#​6876)
  • feature: Add operator_linebreak rule to @​Symfony (#​6877)
  • feature: add SingleLineEmptyBodyFixer (#​6933)
  • feature: DescribeCommand - allow describing custom fixers (#​6957)
  • feature: Introduce OrderedTypesFixer (#​6571)
  • feature: Order of PHPDoc @​param annotations (#​3909)
  • feature: Parse parenthesized & conditional phpdoc type (#​6796)
  • feature: PhpUnitInternalClassFixer - add empty line before PHPDoc (#​6924)
  • feature: [PhpdocAlignFixer] Add support for every tag (#​6564)
  • minor: align NoSuperfluousPhpdocTagsFixer with actual Symfony configuration (#​6953)
  • minor: do not add empty line in PHPDoc when adding annotation in PHPUnit class (#​6928)
  • minor: PhpdocAlignFixer - support cases with type and variable separated with no space (#​6921)
  • minor: PhpdocSeparationFixer - add integration tests (#​6929)
  • minor: update PHPStan (to fix CI on master branch) (#​6901)
  • minor: Use single Dockerfile with multiple build targets (#​6840)

Configuration

📅 Schedule: (in timezone Europe/Amsterdam)

  • 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 has been generated by Mend Renovate.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [friendsofphp/php-cs-fixer](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer) | `3.16.0` → `3.95.10` | ![age](https://developer.mend.io/api/mc/badges/age/packagist/friendsofphp%2fphp-cs-fixer/3.95.10?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/friendsofphp%2fphp-cs-fixer/3.16.0/3.95.10?slim=true) | --- ### Release Notes <details> <summary>PHP-CS-Fixer/PHP-CS-Fixer (friendsofphp/php-cs-fixer)</summary> ### [`v3.95.10`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v39510) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.95.9...v3.95.10) - fix: `TokensAnalyzer` - handle `T_PUBLIC_SET`, `T_PROTECTED_SET`, `T_PRIVATE_SET` ([#&#8203;9696](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9696)) ### [`v3.95.9`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3959) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.95.8...v3.95.9) - chore: apply `class_keyword` ([#&#8203;9689](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9689)) - refactor: change Fixers execution order to always-deterministic ([#&#8203;9690](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9690)) ### [`v3.95.8`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3958) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.95.7...v3.95.8) - fix: `SingleClassElementPerStatementFixer` - do not drop modifiers when splitting `final` constants/properties ([#&#8203;9687](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9687)) ### [`v3.95.7`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3957) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.95.6...v3.95.7) - fix: `ClassReferenceNameCasingFixer` - do not change case of typed class constant names ([#&#8203;9686](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9686)) ### [`v3.95.6`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3956) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.95.5...v3.95.6) - chore: Docker - ignore root-user warning for pip ([#&#8203;9682](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9682)) - chore: fix typo in comment about fixer configuration ([#&#8203;9675](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9675)) - chore: narrow `Preg::match`/`Preg::matchAll` subject string type when match is truthy ([#&#8203;9668](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9668)) - deps: bump alpine from 3.23 to 3.24 in the all group ([#&#8203;9679](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9679)) - deps: bump codecov/codecov-action from 6 to 7 in /.github/workflows in the all group across 1 directory ([#&#8203;9681](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9681)) - deps: bump shipmonk/dead-code-detector from 1.1.3 to 1.2.0 in /dev-tools in the shipmonk group across 1 directory ([#&#8203;9661](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9661)) - deps: update dev-deps ([#&#8203;9683](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9683)) - deps: upgrade deep-deps for dev-tools ([#&#8203;9677](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9677)) - fix: `PhpUnitAttributesFixer` - correctly handle `@requires` PHPUnit with space-separated version constraint ([#&#8203;9684](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9684)) - UX: Cache - explicit deprecation for usage of non-handled objects in rules configuration, as they silently fail now; add support for JsonSerializable config values ([#&#8203;9678](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9678)) ### [`v3.95.5`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3955) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.95.4...v3.95.5) - chore: Cleanup `assert()` and add more precise `Preg::matchAll()` return type ([#&#8203;9667](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9667)) - chore: cleanup `GroupImportFixer` ([#&#8203;9671](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9671)) - chore: improve `TypeExpression` ([#&#8203;9665](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9665)) - chore: please markdown-lint ([#&#8203;9659](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9659)) - chore: use more `assert` calls ([#&#8203;9666](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9666)) - deps: Allow installation of `sebastian/diff:^9.0` ([#&#8203;9663](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9663)) - deps: bump crate-ci/typos from 1.47.0 to 1.47.2 in /.github/workflows in the all group across 1 directory ([#&#8203;9662](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9662)) - docs/refactor: clarify bracket types naming ([#&#8203;5915](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/5915)) - fix: Add support for `phpunit/phpunit:^13.2` in `PhpUnitTestCaseStaticMethodCallsFixer` ([#&#8203;9664](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9664)) - fix: Use `AgentDetector` to detect presence of AI agent only when `@auto` format has been selected ([#&#8203;9658](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9658)) - fix: `PhpdocAddMissingParamAnnotationFixer` - skip attribute tokens when extracting parameter type ([#&#8203;9634](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9634)) - fix: `StaticPrivateMethodFixer` - fix for private constructor and abstract static method ([#&#8203;9598](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9598)) - refactor: `simplified_if_return` - applyFix to use slices for token insertion ([#&#8203;9670](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9670)) ### [`v3.95.4`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3954) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.95.3...v3.95.4) - chore: improve `ArrayIndentationFixer` ([#&#8203;9643](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9643)) - chore: improve `ClassDefinitionFixer` ([#&#8203;9645](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9645)) - chore: improve `ControlCaseStructuresAnalyzer` ([#&#8203;9644](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9644)) - chore: improve `NoAliasFunctionsFixer` ([#&#8203;9647](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9647)) - chore: improve `NoSuperfluousPhpdocTagsFixer` ([#&#8203;9646](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9646)) - chore: improve `PhpUnitTestCaseStaticMethodCallsFixer` ([#&#8203;9649](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9649)) - chore: improve `Token` ([#&#8203;9650](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9650)) - chore: improve `WorkerException` ([#&#8203;9648](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9648)) - chore: minor updates around PHPStan ([#&#8203;9651](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9651)) - deps: bump crate-ci/typos from 1.46.2 to 1.47.0 in /.github/workflows in the all group across 1 directory ([#&#8203;9639](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9639)) - deps: bump PHPStan to 2.2.1 ([#&#8203;9635](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9635)) - deps: minor upgrades of dev-tools ([#&#8203;9653](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9653)) - fix: Address credential exposure concern related to using `ergebnis/agent-detector` for detecting the presence of an AI agent ([#&#8203;9656](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9656)) - test: improve data providers return types ([#&#8203;9642](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9642)) ### [`v3.95.3`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3953) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.95.2...v3.95.3) - fix: `MultilinePromotedPropertiesFixer` - fix for `new` in initializers ([#&#8203;9619](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9619)) - fix: `PhpdocLineSpanFixer` - run after `NoSuperfluousPhpdocTagsFixer` ([#&#8203;9615](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9615)) - CI: add generic phpstan/phpstan-deprecation-rules, so usage of old deprecated constants is detected ([#&#8203;9636](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9636)) - CI: replace PHP `8.6snapshot` with `nightly` in matrix ([#&#8203;9628](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9628)) - deps: bump crate-ci/typos from 1.46.0 to 1.46.1 in /.github/workflows in the all group across 1 directory ([#&#8203;9624](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9624)) - deps: bump crate-ci/typos from 1.46.1 to 1.46.2 in /.github/workflows in the all group across 1 directory ([#&#8203;9631](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9631)) - deps: bump ergebnis/composer-normalize from 2.51.0 to 2.52.0 in /dev-tools ([#&#8203;9627](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9627)) - deps: bump the phpstan group in /dev-tools with 2 updates ([#&#8203;9626](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9626)) - deps: upgrade misc deps ([#&#8203;9621](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9621)) - refactor: AttributeBlockNoSpacesFixer - no need for loop when we already know bracket indices ([#&#8203;9446](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9446)) ### [`v3.95.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3952) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.95.1...v3.95.2) - fix: `MethodArgumentSpaceFixer` - avoid collapsing multi-line arguments ([#&#8203;9559](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9559)) - fix: `ModifierKeywordsFixer` - do not break PHP syntax for closures in constant expressions ([#&#8203;9596](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9596)) - fix: `NoRedundantReadonlyPropertyFixer` - fix `TypeError` when trait contains anonymous class ([#&#8203;9457](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9457)) - fix: `PhpUnitAttributesFixer` - add missing handling of `CoversMethod` and naive handling of `CoversTrait` ([#&#8203;9588](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9588)) - fix: `TextReporter` - always show summary footer ([#&#8203;9595](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9595)) - deps: bump crate-ci/typos from 1.45.1 to 1.46.0 in /.github/workflows in the all group across 1 directory ([#&#8203;9605](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9605)) - deps: bump ergebnis/composer-normalize from 2.50.0 to 2.51.0 in /dev-tools ([#&#8203;9561](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9561)) - deps: bump phpstan/phpstan from 2.1.46 to 2.1.47 in /dev-tools in the phpstan group ([#&#8203;9560](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9560)) - deps: bump phpstan/phpstan from 2.1.51 to 2.1.52 in /dev-tools in the phpstan group ([#&#8203;9601](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9601)) - deps: bump PHPUnit patch versions ([#&#8203;9593](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9593)) - deps: bump shipmonk/dead-code-detector from 1.0.0 to 1.1.0 in /dev-tools in the shipmonk group across 1 directory ([#&#8203;9569](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9569)) - deps: bump the all group across 1 directory with 2 updates ([#&#8203;9570](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9570)) - deps: bump the phpstan group across 1 directory with 2 updates ([#&#8203;9608](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9608)) - deps: update `facile-it/paraunit` to ^2.11 ([#&#8203;9589](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9589)) - deps: upgrade PHPUnit in GitHub Actions ([#&#8203;9577](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9577)) - chore: .gitattributes - export-ignore for logo.md ([#&#8203;9611](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9611)) - chore: .gitattributes - sort entries ([#&#8203;9612](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9612)) - chore: Add CS commit to .git-blame-ignore-revs - chore: Add CS commit to .git-blame-ignore-revs - chore: add tests to `PhpdocTagCasingFixerTest` ([#&#8203;9610](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9610)) - chore: cleanup `AbstractFopenFlagFixer` ([#&#8203;9592](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9592)) - chore: cleanup `BlankLineBetweenImportGroupsFixer` ([#&#8203;9562](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9562)) - chore: cleanup `ControlStructureBracesFixer` ([#&#8203;9609](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9609)) - chore: cleanup `NoExtraBlankLinesFixer` ([#&#8203;9567](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9567)) - chore: cleanup `OrderedImportsFixer` ([#&#8203;9603](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9603)) - chore: cleanup `PhpdocSingleLineVarSpacingFixer` ([#&#8203;9591](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9591)) - chore: cleanup `PhpdocToReturnTypeFixer` ([#&#8203;9558](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9558)) - chore: CS - apply `PhpUnitRequiresConstraintFixer` from `https://github.com/kubawerlos/php-cs-fixer-custom-fixers` ([#&#8203;9581](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9581)) - chore: CS - apply `php_unit_attributes` rule ([#&#8203;9578](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9578)) - chore: ensure consistent `@author` name per email ([#&#8203;9606](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9606)) - chore: fix wrong test Attribute ([#&#8203;9586](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9586)) - chore: infection - define staticAnalysisTool ([#&#8203;9607](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9607)) - chore: move Codecov config ([#&#8203;9597](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9597)) - CI: move PHPUnit version management earlier to prevent composer installation phase to run 2 times ([#&#8203;9587](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9587)) - CI: specify Codecov token ([#&#8203;9556](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9556)) - CI: use Codecov for code coverage ([#&#8203;9553](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9553)) - test: `NoUnsetCastFixerTest` - run any test on PHP >= 8 ([#&#8203;9585](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9585)) ### [`v3.95.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v39510) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.95.0...v3.95.1) - fix: `TokensAnalyzer` - handle `T_PUBLIC_SET`, `T_PROTECTED_SET`, `T_PRIVATE_SET` ([#&#8203;9696](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9696)) ### [`v3.95.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3950) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.94.2...v3.95.0) - feat: Add option `remove_existing_declaration` to `declare_strict_types` fixer ([#&#8203;9384](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9384)) - feat: Add `exclude` option to `phpdoc_types` rule ([#&#8203;9479](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9479)) - feat: introduce 'list-rules' command ([#&#8203;9512](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9512)) - feat: introduce `NoWhitespaceInEmptyArrayFixer` ([#&#8203;8155](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8155)) - feat: Resolve to `json` format when `AI_AGENT` environment variable is set ([#&#8203;9542](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9542)) - feat: `@Symfony:risky` - add `void_return` ([#&#8203;9546](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9546)) - feat: `GlobalNamespaceImportFixer` - support first-class callable syntax ([#&#8203;9484](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9484)) - feat: `MethodArgumentSpaceFixer` - add `ensure_single_line_for_single_argument` option for `on_multiline` ([#&#8203;9504](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9504)) - feat: `MultilinePromotedPropertiesFixer` - turn multiline promoted properties into singleline when there are fewer than `minimum_number_of_parameters` ([#&#8203;9501](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9501)) - feat: `PhpdocLineSpanFixer` - add `function` option ([#&#8203;9439](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9439)) - feat: `ReturnAssignmentFixer` - skip variables with the named `@var` tags with new option `skip_named_var_tags` ([#&#8203;9464](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9464)) - fix: `ArrayPushFixer` - do not stop fixing when `array_push` with 1 argument found ([#&#8203;9508](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9508)) - fix: `BinaryOperatorSpacesFixer` - make it works correctly with multiple match cases ([#&#8203;9470](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9470)) - fix: `EchoTagSyntaxFixer` - do not break syntax for single line comments ([#&#8203;9506](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9506)) - fix: `PhpUnitTestClassRequiresCoversFixer` - do not add `@coversNothing` to anonymous classes ([#&#8203;9481](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9481)) - fix: `SimplifiedNullReturnFixer` - do not remove `null` from property hook ([#&#8203;9471](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9471)) - docs: extend docs about exit code ([#&#8203;9526](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9526)) - docs: StaticLambdaFixer - document example how to prevent conversion ([#&#8203;9502](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9502)) - DX: change default PHP\_CS\_FIXER\_FAST\_LINT\_TEST\_CASES=1 and run full linting of test cases only on highest and lowest PHP versions in CI ([#&#8203;9448](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9448)) - chore: add missing test for `SetTypeToCastFixer` ([#&#8203;9518](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9518)) - chore: add test for NoMultipleStatementsPerLineFixer ([#&#8203;9533](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9533)) - chore: add tests for `BracesPositionFixer` ([#&#8203;9522](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9522)) - chore: add tests for `PsrAutoloadingFixer` ([#&#8203;9541](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9541)) - chore: cleanup MagicConstantCasingFixer ([#&#8203;9494](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9494)) - chore: cleanup NoNullPropertyInitializationFixer ([#&#8203;9493](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9493)) - chore: cleanup `ClassAttributesSeparationFixer` ([#&#8203;9545](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9545)) - chore: cleanup `GeneralAttributeRemoveFixer` ([#&#8203;9520](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9520)) - chore: cleanup `GlobalNamespaceImportFixerTest` ([#&#8203;9482](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9482)) - chore: cleanup `NoTrailingCommaInSinglelineFixer` ([#&#8203;9537](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9537)) - chore: cleanup `OrderedAttributesFixer` ([#&#8203;9521](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9521)) - chore: cleanup `PhpUnitExpectationFixer` ([#&#8203;9505](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9505)) - chore: commands cleanup ([#&#8203;9478](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9478)) - chore: ensure that regex `TypeExpression::REGEX_TYPES` does not have unnamed capturing group ([#&#8203;9514](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9514)) - chore: exclude logo.png and composer-dependency-analyser.php from Composer export ([#&#8203;9516](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9516)) - chore: group dependabot updates for Docker and GitHub Actions ([#&#8203;9535](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9535)) - chore: improve `AbstractPhpUnitFixer` ([#&#8203;9519](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9519)) - chore: improve `ArrayPushFixer` ([#&#8203;9515](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9515)) - chore: update `FunctionsAnalyzer` ([#&#8203;9483](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9483)) - chore: `MbStrFunctionsFixer` - remove the never `true` condition ([#&#8203;9509](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9509)) - chore: `ModernizeStrposFixer` - remove the never `true` conditions ([#&#8203;9510](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9510)) - chore: `NoAliasFunctionsFixer` - cleanup invalid set handling ([#&#8203;9511](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9511)) - CI: add `failOnDeprecation="true"` to PHPUnit config ([#&#8203;8935](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8935)) - CI: cleanup jobs ([#&#8203;9449](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9449)) - CI: configure Dependabot for composite actions ([#&#8203;9529](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9529)) - CI: do not run `issue_8828_c.test` on macOS for now ([#&#8203;9528](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9528)) - CI: fix Dependabot paths ([#&#8203;9530](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9530)) - CI: more of ubuntu-slim ([#&#8203;9450](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9450)) - CI: move spelling checks to dedicated workflow ([#&#8203;9451](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9451)) - deps: bump actions/cache from 4 to 5 in /.github/composite-actions/install-composer-deps ([#&#8203;9531](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9531)) - deps: bump actions/github-script from 8 to 9 in /.github/composite-actions/setup-php-with-composer-deps ([#&#8203;9544](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9544)) - deps: bump crate-ci/typos from 1.43.5 to 1.44.0 ([#&#8203;9476](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9476)) - deps: bump crate-ci/typos from 1.44.0 to 1.45.0 ([#&#8203;9523](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9523)) - deps: bump docker/build-push-action from 6 to 7 ([#&#8203;9486](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9486)) - deps: bump docker/login-action from 3 to 4 ([#&#8203;9477](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9477)) - deps: bump docker/metadata-action from 5 to 6 ([#&#8203;9474](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9474)) - deps: bump docker/setup-buildx-action from 3 to 4 ([#&#8203;9475](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9475)) - deps: bump docker/setup-qemu-action from 3 to 4 ([#&#8203;9472](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9472)) - deps: bump nick-invision/retry from 3 to 4 ([#&#8203;9491](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9491)) - deps: bump nick-invision/retry from 3 to 4 in /.github/composite-actions/install-composer-deps ([#&#8203;9532](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9532)) - deps: bump phpstan/phpstan from 2.1.40 to 2.1.42 in /dev-tools in the phpstan group ([#&#8203;9490](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9490)) - deps: bump phpstan/phpstan from 2.1.42 to 2.1.44 in /dev-tools in the phpstan group ([#&#8203;9503](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9503)) - deps: bump phpstan/phpstan-symfony from 2.0.14 to 2.0.15 in /dev-tools in the phpstan group ([#&#8203;9458](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9458)) - deps: bump shipmonk/dead-code-detector from 0.14.1 to 0.15.1 in /dev-tools in the shipmonk group ([#&#8203;9473](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9473)) - deps: bump shipmonk/dead-code-detector from 0.15.1 to 1.0.0 in /dev-tools in the shipmonk group ([#&#8203;9543](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9543)) - deps: update PHPStan ([#&#8203;9452](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9452)) - deps: upgrade deps ([#&#8203;9527](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9527)) - deps: upgrade PHPUnit patch versions ([#&#8203;9455](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9455)) - refactor: ConfigurableFixerTemplateFixer - move handling example file from fixing logic to definition ([#&#8203;9525](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9525)) - refactor: rename `PhpdocTypesNoDuplicatesFixer` to `PhpdocNoDuplicateTypesFixer` ([#&#8203;9381](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9381)) - test: fix CI for Windows ([#&#8203;9492](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9492)) - test: `MethodArgumentSpaceFixer` must run before `NoTrailingCommaInSinglelineFixer` ([#&#8203;9507](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9507)) - test: use `PhpUnitTestCaseStaticMethodCallsFixerTest::testInvalidConfiguration` ([#&#8203;9460](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9460)) ### [`v3.94.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3942) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.94.1...v3.94.2) - fix: `AttributeBlockNoSpacesFixer` - skipping some attributes when multiple present ([#&#8203;9445](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9445)) - fix: `NoUnusedImportsFixer` - do not remove constant types ([#&#8203;9442](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9442)) - fix: `PhpdocLineSpanFixer` - handle unions and intersections in properties ([#&#8203;9438](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9438)) - deps: bump crate-ci/typos from 1.43.4 to 1.43.5 ([#&#8203;9444](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9444)) ### [`v3.94.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3941) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.94.0...v3.94.1) - chore: add tests for `ArgumentsAnalyzer` ([#&#8203;9422](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9422)) - chore: bump dev-tools to PHP 8.5 ([#&#8203;9432](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9432)) - chore: ConfigurableFixerTemplateFixer - allow to remove option from computed options ([#&#8203;9437](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9437)) - chore: fix Tokens::getIterator() type ([#&#8203;9433](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9433)) - chore: reduce Generator into iterable ([#&#8203;9435](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9435)) - chore: reduce Iterator->Traversable and Traversable->iterable when possible ([#&#8203;9434](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9434)) - CI: cleanup sca.yml ([#&#8203;9430](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9430)) - deps: bump crate-ci/typos from 1.43.2 to 1.43.4 ([#&#8203;9426](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9426)) - deps: bump ergebnis/composer-normalize from 2.49.0 to 2.50.0 in /dev-tools ([#&#8203;9427](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9427)) - deps: bump the phpstan group in /dev-tools with 4 updates ([#&#8203;9425](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9425)) - deps: dependabot group for shipmonk/ ([#&#8203;9429](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9429)) - docs: switch sets ordering to case-insensitive ([#&#8203;9423](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9423)) - test: check PHP env in CI jobs ([#&#8203;9428](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9428)) ### [`v3.94.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3940) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.93.1...v3.94.0) - UX: enable parallel runner by default ([#&#8203;9408](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9408)) - feat: Add option `case` to `phpdoc_line_span` fixer ([#&#8203;9391](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9391)) - feat: PhpdocLineSpanFixer - support docs for classes, trait usages and other code lines ([#&#8203;8832](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8832)) - feat: `VoidReturnFixer` - allow to skip lambdas ([#&#8203;9417](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9417)) - chore: fix comment ([#&#8203;9404](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9404)) - chore: Linter tests for Schrodinger's validity ([#&#8203;9398](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9398)) - chore: ModernizeStrposFixer - no need for configuration hooks ([#&#8203;9419](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9419)) - chore: `VoidReturnFixer` - better describe exceptions ([#&#8203;9418](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9418)) - CI: no need for special handling of MacOS ([#&#8203;9403](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9403)) - CI: run tests using PHPUnit 13 ([#&#8203;9410](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9410)) - deps: bump crate-ci/typos from 1.42.1 to 1.42.3 ([#&#8203;9395](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9395)) - deps: bump crate-ci/typos from 1.42.3 to 1.43.2 ([#&#8203;9405](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9405)) - deps: bump ergebnis/composer-normalize from 2.48.2 to 2.49.0 in /dev-tools ([#&#8203;9396](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9396)) - deps: bump the phpstan group in /dev-tools with 2 updates ([#&#8203;9394](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9394)) - deps: upgrade dev-deps ([#&#8203;9411](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9411)) - DX: use custom name for custom config ([#&#8203;9402](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9402)) - fix: absolute path in reports ([#&#8203;9399](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9399)) - fix: indentation for backed enum with multiline assignment ([#&#8203;9362](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9362)) - fix: Runner - fix occasional sub-process freeze on parallel execution with `--stop-on-violation` ([#&#8203;9393](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9393)) - fix: `NoUnreachableDefaultArgumentValueFixer` - fix for closures ([#&#8203;9409](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9409)) - fix: `UseArrowFunctionsFixer` - do not convert closure in attribute ([#&#8203;9416](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9416)) - test: create PHP 8.5 risky compat test ([#&#8203;9420](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9420)) - UX: Do not run interactive configurator when rules are passed explicitly ([#&#8203;9378](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9378)) ### [`v3.93.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3931) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.93.0...v3.93.1) - fix: `ErrorOutput` - do not show "begin diff"/"end diff" when there is no diff ([#&#8203;9361](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9361)) - fix: `UseArrowFunctionsFixer` - don't convert lambda with `use($var)` clause if it includes another file ([#&#8203;9389](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9389)) - DX: use null coalescing operator ([#&#8203;9380](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9380)) ### [`v3.93.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3930) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.92.5...v3.93.0) - feat: add `ModernSerializationMethodsFixer` ([#&#8203;9108](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9108)) - feat: Add `NoRedundantReadonlyPropertyFixer` ([#&#8203;9339](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9339)) - feat: add `PhpdocTypesNoDuplicatesFixer` ([#&#8203;9312](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9312)) - feat: do not suggest config file creation if config explicitly skipped with `--config=-` ([#&#8203;9379](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9379)) - feat: improve handling of `@see` tags in `FullyQualifiedStrictTypesFixer` ([#&#8203;9350](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9350)) - feat: PER attribute block no spaces ([#&#8203;9264](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9264)) - feat: php\_unit\_test\_case\_static\_method\_calls - change default 'call\_type' to 'this' for v4 ([#&#8203;9328](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9328)) - feat: protected\_to\_private - add to`@Symfony` set ([#&#8203;9303](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9303)) - feat: PSR/PER-CS - adjust `braces_position` rule ([#&#8203;9329](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9329)) - feat: remove `php_unit_test_case_static_method_calls` from PHPUnit sets ([#&#8203;9341](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9341)) - feat: `@PHP7x0MigrationRisky` - update configuration of `RandomApiMigrationFixer` to match it's newly updated v4 defaults ([#&#8203;9368](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9368)) - feat: `@Symfony:risky` - extend set with `modern_serialization_methods` ([#&#8203;9366](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9366)) - feat: `@Symfony:risky` - extend set with `static_lambda` ([#&#8203;9365](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9365)) - feat: `@Symfony` - enable `no_unneeded_control_parentheses.statements.negative_instanceof` ([#&#8203;9336](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9336)) - feat: `@Symfony` - extend set with `no_useless_else` ([#&#8203;9363](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9363)) - feat: `@Symfony` - extend set with `no_useless_return` ([#&#8203;9364](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9364)) - feat: `RandomApiMigrationFixer` - allow to convert `mt_getrandmax` and `mt_srand` ([#&#8203;9367](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9367)) - fix: properly expose memory usage while running parallel mode ([#&#8203;9352](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9352)) - fix: `ModifierKeywordsFixer` - closure in attribute ([#&#8203;9358](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9358)) - fix: `NoUselessElseFixer` - handle conditional symbol declarations ([#&#8203;9347](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9347)) - fix: `OrderedClassElementsFixer` - closure in attribute ([#&#8203;9357](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9357)) - fix: `PhpUnitAttributesFixer` - do not add for annotation `@testWith` when attribute `TestWith` already present ([#&#8203;9354](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9354)) - refactor: add base key-existence check for cross-process communication in parallel runner ([#&#8203;9360](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9360)) - refactor: FixerDocumentGenerator - limit the scope to create rule instance in future mode only ([#&#8203;9359](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9359)) - test: fix compatibility towards Symfony 8 ([#&#8203;9370](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9370)) - test: update PHP 8.5 compat test to cover closure in attribute and prevent conversion to empty arrow function ([#&#8203;9373](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9373)) - chore: add clarifying `@return` annotations to `Config` ([#&#8203;9337](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9337)) - chore: fix `assign.propertyType` error from PHPStan ([#&#8203;9332](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9332)) - chore: PHPUnit sets - cleanup test, update docs/comments ([#&#8203;9342](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9342)) - chore: simplify `phpstan:baseline` command ([#&#8203;9346](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9346)) - deps: bump crate-ci/typos from 1.41.0 to 1.42.0 ([#&#8203;9338](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9338)) - deps: bump crate-ci/typos from 1.42.0 to 1.42.1 ([#&#8203;9376](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9376)) - deps: bump dev deps ([#&#8203;9369](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9369)) - deps: bump the phpstan group in /dev-tools with 3 updates ([#&#8203;9375](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9375)) - docs: show default value for future mode ([#&#8203;9355](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9355)) - DX: add env for easier finding which fixer break a PHP syntax ([#&#8203;9356](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9356)) ### [`v3.92.5`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3925) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.92.4...v3.92.5) - fix: `CombineConsecutiveUnsetsFixer` - proper handling of trailing comma ([#&#8203;9335](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9335)) - chore: cleanup self-config file ([#&#8203;9324](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9324)) - chore: fix `variable.undefined` error from PHPStan ([#&#8203;9330](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9330)) - deps: bump crate-ci/typos from 1.40.0 to 1.41.0 ([#&#8203;9325](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9325)) - docs: extend Q\&A for creating the rule ([#&#8203;9331](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9331)) ### [`v3.92.4`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3924) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.92.3...v3.92.4) - fix: `ComposerJsonReader` - handle more syntaxes ([#&#8203;9327](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9327)) - UX: Runner/Parallel/Process - friendly message when tmp dir not writable ([#&#8203;9319](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9319)) - docs: fix RST links ([#&#8203;9321](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9321)) - DX: internal commands for working with tokens ([#&#8203;9251](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9251)) - chore: Add CS commit to .git-blame-ignore-revs - chore: apply trailing\_comma\_in\_multiline: elements.arguments ([#&#8203;9314](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9314)) - deps: upgrade dev-deps ([#&#8203;9318](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9318)) ### [`v3.92.3`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3923) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.92.2...v3.92.3) - fix: using Rule Customisation Policy with parallel runner ([#&#8203;9309](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9309)) - chore: phpstan - cover `.php-cs-fixer.dist.php` ([#&#8203;9311](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9311)) - chore: `.php-cs-fixer.dist.php` - drop wrongly called `ignoreVCSIgnored` ([#&#8203;9310](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9310)) ### [`v3.92.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3922) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.92.1...v3.92.2) - fix: let `@php-cs-fixer-ignore` accept custom fixer names ([#&#8203;9306](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9306)) - chore: introduce `PHP_CS_FIXER_IGNORE_MISMATCHED_RULES_EXCEPTIONS` ([#&#8203;9307](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9307)) ### [`v3.92.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3921) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.92.0...v3.92.1) - chore: update php-compatibility config ([#&#8203;9302](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9302)) - deps: bump actions/cache from 4 to 5 ([#&#8203;9295](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9295)) - deps: bump phpstan/phpstan-phpunit from 2.0.9 to 2.0.10 in /dev-tools in the phpstan group ([#&#8203;9293](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9293)) - deps: bump shipmonk/phpstan-baseline-per-identifier from 2.2.0 to 2.3.0 in /dev-tools ([#&#8203;9294](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9294)) - docs: update README.md ([#&#8203;9277](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9277)) - DX: make all `testFix*` methods have no more than 4 parameters ([#&#8203;9298](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9298)) - DX: make all `testFix*` methods have second parameter `$input` ([#&#8203;9297](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9297)) - DX: rename parameter `$config` to `$configuration` ([#&#8203;9299](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9299)) - DX: restrict `testFix*` parameter names ([#&#8203;9301](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9301)) - DX: use `WhitespacesFixerConfig` in tests ([#&#8203;9300](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9300)) - fix: describe - skip listing automated rules, as cannot determine them in projects ([#&#8203;9304](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9304)) - test: PHPUnit sets - check that set is providing proper target for rules ([#&#8203;9296](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9296)) - test: `ProjectCodeTest::testExpectedInputOrder` - move checks for `testFix...` methods ([#&#8203;9291](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9291)) ### [`v3.92.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3920) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.91.3...v3.92.0) - feat: exception for rules via `@php-cs-fixer-ignore` annotation ([#&#8203;9280](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9280)) - feat: exception for rules via `Rule Customisation Policy` ([#&#8203;9107](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9107)) - feat: `PhpUnitTestCaseStaticMethodCallsFixer` - add handling of `getStubBuilder` ([#&#8203;9276](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9276)) - feat: `PhpUnitTestCaseStaticMethodCallsFixer` - add `target` option ([#&#8203;8498](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8498)) - chore: '.php-cs-fixer.dist.php' - remove no longer needed rule, 'expectedDeprecation' annotation does not exist for long time ([#&#8203;9266](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9266)) - chore: fix `arguments.count` error from PHPStan ([#&#8203;9258](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9258)) - chore: fix `generator.valueType` error from PHPStan ([#&#8203;9259](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9259)) - chore: fix `plus.*NonNumeric` errors from PHPStan ([#&#8203;9260](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9260)) - chore: Runner - better input types handling ([#&#8203;9286](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9286)) - chore: watch out for non-final classes ([#&#8203;9262](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9262)) - chore: `Config::getFinder()` - fix typehinting ([#&#8203;9288](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9288)) - deps: bump alpine from 3.22 to 3.23 ([#&#8203;9269](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9269)) - deps: bump phpcompatibility/php-compatibility from 10.0.0-alpha1 to 10.0.0-alpha2 in /dev-tools ([#&#8203;9271](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9271)) - deps: bump the phpstan group in /dev-tools with 3 updates ([#&#8203;9270](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9270)) - deps: dev-tools - upgrade deep deps ([#&#8203;9272](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9272)) - docs: exception for rules in dedicated doc files, for easier discoverability ([#&#8203;9281](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9281)) - docs: upgrade docs to not use legacy set ([#&#8203;9282](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9282)) - DX: make all `testFix*` methods have first parameter `$expected` ([#&#8203;9289](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9289)) - refactor: fix violation of 'no\_useless\_concat\_operator' ([#&#8203;9267](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9267)) - refactor: `ProjectCodeTest` - refactor `testExpectedInputOrder` test ([#&#8203;9290](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9290)) - Revert (partially) "feat: Finder to find dot-files by default in v4/future-mode ([#&#8203;9187](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9187))" ([#&#8203;9287](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9287)) - test: RuleSetTest - check against non-deprecated variant of PHPUnit sets ([#&#8203;9265](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9265)) - UX: exception for rules via `Rule Customisation Policy` - better error message for wrong customisers ([#&#8203;9279](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9279)) - UX: exception for rules via `Rule Customisation Policy` - prevent policy without version ([#&#8203;9278](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9278)) ### [`v3.91.3`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3913) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.91.2...v3.91.3) - Revert "feat: Symfony - add stringable\_for\_to\_string to set" ([#&#8203;9268](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9268)) ### [`v3.91.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3912) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.91.1...v3.91.2) - fix: fix support call-site generic variance ([#&#8203;9253](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9253)) - chore: adjust autoloader to exclude all Internal classes in classmap ([#&#8203;9252](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9252)) - CI: set `PHP_CS_FIXER_IGNORE_ENV` for PHP 8.6 ([#&#8203;9254](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9254)) ### [`v3.91.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3911) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.91.0...v3.91.1) - UX: show warning on PHP-mismatch only for 'fix' and 'check' commands ([#&#8203;9243](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9243)) - docs: unify rule/ruleset doc tags ([#&#8203;9250](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9250)) - refactor: don't expose internal commands/rules ([#&#8203;9245](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9245)) - refactor: memoize fixer names ([#&#8203;9219](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9219)) - refactor: use custom set for internal rules ([#&#8203;9247](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9247)) - test: show that `describe` command works well for custom sets ([#&#8203;9246](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9246)) ### [`v3.91.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3910) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.90.0...v3.91.0) - UX: init command ([#&#8203;9215](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9215)) - feat: PHP 8.5 compatibility support ([#&#8203;9234](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9234)) - feat: Add `StringableForToStringFixer` ([#&#8203;9218](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9218)) - feat: support call-site generic variance ([#&#8203;9212](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9212)) - feat: Symfony - add stringable\_for\_to\_string to set ([#&#8203;9235](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9235)) - chore: do not mark NamespaceAnalysis as internal, because it's part of public API interface ([#&#8203;9193](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9193)) - chore: ExampleRuleset - improve test fixture name ([#&#8203;9214](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9214)) - chore: traits - require interfaces or base classes ([#&#8203;9086](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9086)) - CI: Add PHPStan rule to validate public API surface completeness ([#&#8203;9196](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9196)) - CI: auto-select PHP\_MAX for special jobs ([#&#8203;9231](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9231)) - CI: drop duplicated PHP 8.4 jobs ([#&#8203;9229](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9229)) - CI: fix SCA after Symfony 7.4.0 release ([#&#8203;9226](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9226)) - CI: no more need for solving PHP 8.4 deprecations in `/vendor/` anymore ([#&#8203;9230](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9230)) - CI: switch trivial jobs to ubuntu-slim ([#&#8203;9232](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9232)) - CI: upgrade `.php-cs-fixer.php-highest.php` to fully reflect PHP 8.4 ([#&#8203;9233](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9233)) - deps: bump actions/checkout from 5 to 6 ([#&#8203;9210](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9210)) - deps: bump crate-ci/typos from 1.39.2 to 1.40.0 ([#&#8203;9237](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9237)) - deps: bump shipmonk/composer-dependency-analyser from 1.8.3 to 1.8.4 in /dev-tools ([#&#8203;9238](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9238)) - deps: bump shipmonk/dead-code-detector from 0.13.5 to 0.14.0 in /dev-tools ([#&#8203;9239](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9239)) - deps: bump Symfony v8 to RC ([#&#8203;9221](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9221)) - deps: bump Symfony v8 to stable ([#&#8203;9222](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9222)) - deps: update xdebug ([#&#8203;9228](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9228)) - fix: move config template to non-excluded folder ([#&#8203;9241](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9241)) - fix: `DeclareStrictTypesFixer` - do not duplicate `strict_types` if it is already present, with other directive ([#&#8203;9225](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9225)) - fix: `FullyQualifiedStrictTypesFixer` - fix crash on `T_OPEN_TAG_WITH_ECHO` ([#&#8203;9217](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9217)) - test: allow CI to define both, numeric and non-numeric PHP versions/builds ([#&#8203;9236](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9236)) - test: do not allow to fail PHP 8.5 job ([#&#8203;9224](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9224)) - test: let's not dance on the edge of the JIT stack limit ([#&#8203;9211](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9211)) - test: run smoke tests on any OS ([#&#8203;9242](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9242)) - test: update PHP 8.5 compatibility test ([#&#8203;9223](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9223)) ### [`v3.90.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3900) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.89.2...v3.90.0) - feat: always have `@PHPXxYMigration(:risky)` sets for supported PHP versions ([#&#8203;9207](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9207)) - feat: Finder to find dot-files by default in v4/future-mode ([#&#8203;9187](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9187)) - fix: manage the space between operator and version on Composer JSON reader ([#&#8203;9203](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9203)) - fix: PhpdocAnnotationWithoutDotFixer lowercases `@param` type when description starts with all-uppercase word ([#&#8203;9169](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9169)) - UX: groom warning of PHP mismatch for runtime vs target project minimum supported version ([#&#8203;9202](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9202)) - UX: Rules override warning ([#&#8203;9188](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9188)) - UX: `describe` command - allow to visualize Set as tree ([#&#8203;9179](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9179)) - docs: rework `.php-cs-fixer.php` local config file docs ([#&#8203;9185](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9185)) - docs: update Set descriptions ([#&#8203;9183](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9183)) - chore: Declare support for Symfony 8 ([#&#8203;9172](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9172)) - chore: add missing v4 TODOs ([#&#8203;9197](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9197)) - chore: mark one remaining Analyzer to become internal ([#&#8203;9194](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9194)) - chore: mark v2 leftovers with v4 TODO ([#&#8203;9181](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9181)) - chore: no need for deprecation trigger in internal DataProviderAnalysis ([#&#8203;9192](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9192)) - deps: bump crate-ci/typos from 1.38.1 to 1.39.0 ([#&#8203;9175](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9175)) - deps: bump crate-ci/typos from 1.39.0 to 1.39.2 ([#&#8203;9205](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9205)) - deps: bump the phpstan group in /dev-tools with 2 updates ([#&#8203;9204](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9204)) - DX: different name for special configs ([#&#8203;9180](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9180)) - DX: improve types for `testInvalidConfiguration` methods ([#&#8203;9206](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9206)) - DX: `describe` command - allow to expose rules without sets via `@-` alias ([#&#8203;9178](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9178)) - refactor: move assertions from `tearDown` into `assertPostConditions` to fix `Test code or tested code did not remove its own error handlers` warning ([#&#8203;9182](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9182)) - refactor: prevent tests to use actual repository `.php-cs-fixer.dist.php` file ([#&#8203;9177](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9177)) - test: add more test(s) for ComposerJsonReader ([#&#8203;9200](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9200)) - test: ensure calling parent method from hook-alike methods ([#&#8203;9184](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9184)) ### [`v3.89.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3892) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.89.1...v3.89.2) - fix: `NoUnneededBracesFixer` - do not crash on multiline group import ([#&#8203;9160](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9160)) - chore: Standardize repository to use British English spelling ([#&#8203;9154](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9154)) - CI: ensure enforced Symfony version is installed ([#&#8203;9174](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9174)) - deps: bump php-coveralls to v2.9 ([#&#8203;9173](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9173)) - refactor: FixerDocumentGenerator::getSetsOfRule - cache resolved sets ([#&#8203;9170](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9170)) - refactor: FixerDocumentGenerator::getSetsOfRule - use cache ([#&#8203;9171](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9171)) ### [`v3.89.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3891) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.89.0...v3.89.1) - fix: ComposerJsonReader - fix handling asterisk ([#&#8203;9166](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9166)) - docs: cookbook - update to mention custom fixer option ([#&#8203;9164](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9164)) - DX: add links in `cookbook_fixers.rst` ([#&#8203;9162](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9162)) - deps: upgrade `phpcompatibility/*` to alpha of next MAJOR instead of using dev branch, plus other minor upgrades ([#&#8203;9163](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9163)) ### [`v3.89.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3890) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.88.2...v3.89.0) - feat: autofix "no-return" phpdoc type to "never" ([#&#8203;9073](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9073)) - feat: support keeping strict\_types=0 in DeclareStrictTypesFixer ([#&#8203;9121](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9121)) - feat: `NoUnneededBracesFixer` - remove unneeded braces from imports ([#&#8203;9118](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9118)) - fix: `FullyQualifiedStrictTypesFixer` - replacing the real FQCN with a non-existent one ([#&#8203;8962](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8962)) - fix: `PhpdocToCommentFixer` on property hooks ([#&#8203;9123](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9123)) - fix: `PhpUnitMethodCasingFixer` to not cause a duplicate method declaration ([#&#8203;9124](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9124)) - fix: `StaticLambdaFixer` - do not make function static when it contains anonymous class having `$this` in the constructor ([#&#8203;9088](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9088)) - fix: `UseArrowFunctionsFixer` - do not produce two consecutive whitespace tokens ([#&#8203;9151](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9151)) - UX: better gitlab reporting - add content field ([#&#8203;9152](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9152)) - UX: better gitlab reporting - more user-friendly description field ([#&#8203;9141](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9141)) - UX: better gitlab reporting for location.lines ([#&#8203;9149](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9149)) - UX: Warn if executed php version is higher than the minimum php version defined in composer.json ([#&#8203;9134](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9134)) - chore: add UX title pattern ([#&#8203;9132](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9132)) - chore: explicitly use php interpreter for paraunit ([#&#8203;9126](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9126)) - chore: extend composer scripts ([#&#8203;9127](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9127)) - chore: fix shellcheck installation for Darwin ([#&#8203;9125](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9125)) - chore: replace PHPDocs with `assert` calls ([#&#8203;9144](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9144)) - deps: bump crate-ci/typos from 1.36.3 to 1.38.1 ([#&#8203;9136](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9136)) - deps: bump phpstan/phpstan from 2.1.29 to 2.1.31 in /dev-tools in the phpstan group ([#&#8203;9129](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9129)) - deps: bump shipmonk/dead-code-detector from 0.13.3 to 0.13.4 in /dev-tools ([#&#8203;9135](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9135)) - deps: bump shipmonk/dead-code-detector from 0.13.4 to 0.13.5 in /dev-tools ([#&#8203;9146](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9146)) - deps: bump the phpstan group across 1 directory with 2 updates ([#&#8203;9101](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9101)) - deps: use `shipmonk/composer-dependency-analyser` instead of `icanhazstring/composer-unused` and `maglnet/composer-require-checker` ([#&#8203;9106](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9106)) - docs: fix docs for `@autoPHPUnitMigration:risky`set ([#&#8203;9147](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9147)) - docs: improve descriptions for `NoTrailingWhitespace*` fixers ([#&#8203;9117](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9117)) - docs: more explicit docs on --rules ([#&#8203;9114](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9114)) - docs: update usage documentation for describe `--expand` and `@` ([#&#8203;9119](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9119)) - DX: Fix `composer qa` script ([#&#8203;9138](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9138)) - refactor: `--option value` => `--option=value` ([#&#8203;9131](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9131)) - test: Fix result randomness in `RunnerTest` for MacOS ([#&#8203;9139](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9139)) ### [`v3.88.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3882) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.88.1...v3.88.2) - docs: describe command - allow to describe config in use ([#&#8203;9103](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9103)) - docs: describe command - allow to expand sets ([#&#8203;9104](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9104)) ### [`v3.88.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3881) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.88.0...v3.88.1) - chore: use accidentally missing `@auto:risky` ([#&#8203;9102](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9102)) - deps: bump crate-ci/typos from 1.36.2 to 1.36.3 ([#&#8203;9099](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9099)) - deps: bump icanhazstring/composer-unused from 0.9.4 to 0.9.5 in /dev-tools ([#&#8203;9100](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9100)) - DX: Ability to run `yamllint` locally ([#&#8203;9093](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9093)) ### [`v3.88.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3880) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.87.2...v3.88.0) - feat: Support custom rulesets ([#&#8203;6083](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6083)) - feat: introduce `@auto`, `@auto:risky` sets ([#&#8203;9090](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9090)) - feat: introduce `@autoPHPMigration`, `@autoPHPMigration:risky`, `@autoPHPUnitMigration:risky` sets ([#&#8203;9068](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9068)) - feat: start using new defaults for rules under future mode ([#&#8203;9020](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9020)) - feat: rename rule sets from `MAJORMINOR` and `MAJOR.MINOR` into `MAJORxMINOR` ([#&#8203;9005](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9005)) - feat: rename visibility\_required into modifier\_keywords ([#&#8203;8995](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8995)) - feat: `symfony` ruleset: Add `@const` to `phpdoc_no_alias_tag` ([#&#8203;9016](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9016)) - fix: `BlankLinesBeforeNamespaceFixer` - handle namespace without newline before ([#&#8203;9059](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9059)) - docs: fix typo ([#&#8203;9060](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9060)) - docs: update CONTRIBUTING.md ([#&#8203;9074](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9074)) - docs: update README for updated PHP/PHPUnit set names ([#&#8203;9070](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9070)) - DX: Allow development on PHP 8.5 ([#&#8203;9092](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9092)) - chore: enforce list via `array_values()` ([#&#8203;9054](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9054)) - chore: ErrorOutput - line is optional ([#&#8203;9047](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9047)) - chore: fix cs in entry point file ([#&#8203;9064](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9064)) - chore: fix CS, somehow it missed the CI of `.php-cs-fixer.well-defined-arrays.php` ([#&#8203;8987](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8987)) - chore: fix some `argument.type` errors ([#&#8203;9056](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9056)) - chore: groom Automatic rulesets code ([#&#8203;9091](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9091)) - chore: phpstan - do not ignore all `internal` usage errors ([#&#8203;9063](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9063)) - chore: replace wrong `class-string` usages ([#&#8203;8968](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8968)) - chore: `getcwd()` - ignore `false` return value ([#&#8203;9057](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9057)) - chore: `ReporterFactory` - use `class-string` type ([#&#8203;9055](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9055)) - CI: check for typos ([#&#8203;9048](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9048)) - CI: don't prevent the build when remote coverage reporting service is down ([#&#8203;9095](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9095)) - CI: fix smoke tests after [#&#8203;9005](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9005) ([#&#8203;9061](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9061)) - CI: fix typos in `CHANGELOG.md` ([#&#8203;9052](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9052)) - CI: mutation tests - disable github annotations ([#&#8203;9062](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9062)) - CI: Test docs generation only once per CI pipeline ([#&#8203;9089](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9089)) - CI: `push` event only for master branch ([#&#8203;9046](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9046)) - CI: `push` event only for master branch ([#&#8203;9050](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9050)) - deps: bump box version ([#&#8203;9042](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9042)) - deps: bump ergebnis/composer-normalize from 2.48.1 to 2.48.2 in /dev-tools ([#&#8203;9045](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9045)) - deps: bump phpstan/phpstan from 2.1.25 to 2.1.28 in /dev-tools in the phpstan group ([#&#8203;9072](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9072)) - deps: unify alpine version for PHP 8.4 ([#&#8203;9077](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9077)) - deps: update phpstan and phpstan-baseline-per-identifier ([#&#8203;9051](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9051)) - deps: update squizlabs/php\_codesniffer to v4.0 and other related packages ([#&#8203;9075](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9075)) - deps: upgrade alpine wherever possible ([#&#8203;9078](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9078)) - deps: upgrade infection/infection to ^0.31.0 ([#&#8203;9079](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9079)) - refactor: introduce concept of AutomaticRuleSet ([#&#8203;9067](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9067)) - refactor: rename `RuleSetDescriptionInterface` into `RuleSetDefinitionInterface` ([#&#8203;9094](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9094)) - test: ensure alpine version same between Dockerfile and compose.yaml ([#&#8203;9076](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9076)) - test: ensure alpine version same in compose.yaml and release.yml ([#&#8203;9071](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9071)) - test: extend tests to cover new migration rule set names ([#&#8203;9069](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9069)) - test: improve testing that objects cannot be serialized/unserialized ([#&#8203;9049](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9049)) ### [`v3.87.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3872) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.87.1...v3.87.2) - fix: `phpdoc_to_param_type`, `phpdoc_to_return_type`, `phpdoc_to_property_type` - handle type aliasing before handling PHP version ([#&#8203;9031](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9031)) - docs: unify docs around deprecated sets ([#&#8203;9036](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9036)) - chore: fix typos ([#&#8203;9022](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9022)) - chore: provide few missing types for callbacks ([#&#8203;9026](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9026)) - deps: bump actions/stale from 9 to 10 ([#&#8203;9029](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9029)) - deps: pin checkbashisms and shellcheck to stable URL with pinned version ([#&#8203;9032](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9032)) - DX: suggest `--sequential` when facing fixing error ([#&#8203;9023](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9023)) - refactor: Future - centralize class for future-looking logic ([#&#8203;9021](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9021)) - test: Mark `DocumentationCommandTest::testGeneratingDocumentation()` as large test ([#&#8203;9028](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9028)) ### [`v3.87.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3871) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.87.0...v3.87.1) - chore: `AbstractProxyFixer` - require non-empty list of proxy fixers ([#&#8203;9010](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9010)) - deps: update justinrainbow/json-schema ([#&#8203;9019](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9019)) ### [`v3.87.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3870) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.86.0...v3.87.0) - feat: add `PhpdocTagNoNamedArgumentsFixer` ([#&#8203;8906](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8906)) - feat: deprecate using config from passed 'path' CLI argument ([#&#8203;8923](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8923)) - feat: introduce `@PHP85Migration` set ([#&#8203;8941](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8941)) - feat: upgrade `@PhpCsFixer` set towards new defaults of selected rules ([#&#8203;8981](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8981)) - fix: `PhpdocOrderFixer` - do not allow duplicated tags in configuration ([#&#8203;8945](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8945)) - fix: `PhpdocOrderFixer` when `phpstan-` / `psalm-` order is specified ([#&#8203;8853](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8853)) - docs: README.md updates ([#&#8203;9013](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9013)) - docs: update README.md ([#&#8203;9015](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9015)) - docs: update `README.md` and `CONTRIBUTING.md` ([#&#8203;8974](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8974)) - DX: remove methods for kind checks ([#&#8203;8954](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8954)) - DX: unify class/interface/trait naming ([#&#8203;8957](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8957)) - chore: Add CS commit to .git-blame-ignore-revs - chore: Add TODO for ENUM conversion in ProgressOutputType ([#&#8203;8991](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8991)) - chore: always use `JSON_THROW_ON_ERROR` ([#&#8203;8993](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8993)) - chore: apply (partially) `multiline_string_to_heredoc` ([#&#8203;9002](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9002)) - chore: apply phpdoc\_tag\_no\_named\_arguments ([#&#8203;8969](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8969)) - chore: configure phpdoc\_tag\_no\_named\_arguments ([#&#8203;8970](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8970)) - chore: convert private methods to constants ([#&#8203;8976](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8976)) - chore: deprecate `Annotation::getTagsWithTypes` in favour of `TAGS_WITH_TYPES` constant ([#&#8203;8977](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8977)) - chore: exclude files in .gitattributes ([#&#8203;8960](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8960)) - chore: extract token types for PHPStan ([#&#8203;8925](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8925)) - chore: handle fixer options without allowed types defined ([#&#8203;8973](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8973)) - chore: ignore deprecations in `token_get_all` ([#&#8203;8963](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8963)) - chore: minor CS fixes ([#&#8203;8979](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8979)) - chore: PhpdocTagNoNamedArgumentsFixer - better example ([#&#8203;8971](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8971)) - chore: PHPUnit - enforce no memory\_limit ([#&#8203;8940](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8940)) - chore: remove not-needed reset-call ([#&#8203;9014](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9014)) - chore: revert wrong `_PhpTokenArray` usages ([#&#8203;8947](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8947)) - chore: rework `ci-integration.sh` ([#&#8203;8989](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8989)) - chore: sort .gitattributes ([#&#8203;8966](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8966)) - chore: unify entries in `.gitignore` ([#&#8203;8982](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8982)) - chore: unify env var `FAST_LINT_TEST_CASES` into `PHP_CS_FIXER_FAST_LINT_TEST_CASES` ([#&#8203;8992](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8992)) - chore: use `get_debug_type` and `::class` in exception messages ([#&#8203;9006](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9006)) - chore: use `non-empty-list` where appropriate ([#&#8203;8972](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8972)) - chore: `AbstractPhpdocTypesFixer` - remove `$tags` property ([#&#8203;8980](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8980)) - chore: `CheckCommand` - use regex instead of `explode` & `substr` ([#&#8203;8936](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8936)) - chore: `ClassAttributesSeparationFixer` - improve code ([#&#8203;8950](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8950)) - chore: `EregToPregFixer` - use constant instead of static property ([#&#8203;8978](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8978)) - chore: `FullyQualifiedStrictTypesFixer` - ensure matching number of opening/closing braces ([#&#8203;9009](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9009)) - chore: `OrderedClassElementsFixer` - use private method instead of anonymous function ([#&#8203;8931](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8931)) - chore: `PhpdocParamOrderFixer` - improve/simplify code ([#&#8203;9012](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9012)) - chore: `PhpUnitDedicateAssertFixer` - improve code for phpstan ([#&#8203;9011](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9011)) - chore: `Tokens::offsetSet` - explicit validation of input ([#&#8203;9004](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9004)) - chore: `Tokens` - override nullability of `SplFixedArray` ([#&#8203;9001](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9001)) - refactor: add `DocBlockAnnotation` trait ([#&#8203;8953](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8953)) - refactor: `PhpdocOrderFixer` - calculate order only once ([#&#8203;8944](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8944)) - CI: add `vendor/bin/phpunit --check-php-configuration` ([#&#8203;8934](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8934)) - CI: more self-fixing checks on lowest/highest PHP ([#&#8203;8943](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8943)) - CI: Re-enable Paraunit in CI under PHP 8.5 ([#&#8203;8964](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8964)) - CI: update checkbashisms ([#&#8203;8951](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8951)) - test: extend ProjectCodeTest to check classy names in tests too ([#&#8203;8959](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8959)) - test: split test so more of them can run under Windows ([#&#8203;8986](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8986)) - test: TypeDeclarationSpacesFixer - demonstrate PHP 8.3 related config doesn't harm older envs ([#&#8203;8999](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8999)) - test: update pipe operator tests after pipe & arrow function combination was prohibited ([#&#8203;8990](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8990)) - test: `NoUnneededControlParenthesesFixer` - add tests for "clone with" ([#&#8203;8937](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8937)) - test: `PhpdocNoAliasTagFixerTest` - add test for `@const` to `@var` ([#&#8203;8998](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8998)) - CS: re-apply rules ([#&#8203;8988](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8988)) - deps: bump actions/checkout from 4 to 5 ([#&#8203;8938](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8938)) - deps: bump shipmonk/dead-code-detector from 0.13.1 to 0.13.2 in /dev-tools ([#&#8203;8939](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8939)) - deps: drop support for justinrainbow/json-schema:^5 ([#&#8203;8984](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8984)) - deps: minor upgrades ([#&#8203;8983](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8983)) - deps: remove `php-cs-fixer/accessible-object` ([#&#8203;8948](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8948)) - deps: update dev-tools ([#&#8203;9007](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/9007)) ### [`v3.86.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3860) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.85.1...v3.86.0) - feat: console application - add completion support ([#&#8203;8887](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8887)) - feat: introduce `PER-CS3.0` rulsets ([#&#8203;8841](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8841)) - feat: update `@Symfony` and `@PhpCsFixer` sets ([#&#8203;8930](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8930)) - feat: `NoSuperfluousPhpdocTagsFixer` - support multiline array shapes ([#&#8203;8903](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8903)) - fix: PhpdocToParamTypeFixerTest - handle types\_map for union-types ([#&#8203;8926](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8926)) - chore: AbstractTransformerTestCase - better virtual type naming ([#&#8203;8927](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8927)) - chore: add TODO for v4 ([#&#8203;8912](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8912)) - chore: do not call `Reflection*::setAccessible()` in PHP >= 8.1 ([#&#8203;8907](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8907)) - chore: document .env.example ([#&#8203;8901](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8901)) - chore: fix `@todo` annotation casing ([#&#8203;8921](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8921)) - chore: switch to official checkstyle.xsd ([#&#8203;8910](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8910)) - chore: unify future default of after\_heredoc ([#&#8203;8924](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8924)) - chore: `@phpstan-ignore` for php version check ([#&#8203;8920](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8920)) - chore: `PhpUnitTestAnnotationFixer` - use `foreach` instead of `for` ([#&#8203;8911](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8911)) - CI: allow PHP 8.5 for failure, till it's officially released and we get the stable support ([#&#8203;8928](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8928)) - ci: run tests under 8.5 via PHPUnit, as ParaUnit failing ([#&#8203;8933](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8933)) - CI: temporarily skip problematic tests under Sf v8 ([#&#8203;8919](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8919)) - deps: bump icanhazstring/composer-unused from 0.9.3 to 0.9.4 in /dev-tools ([#&#8203;8905](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8905)) - deps: update and bump dev-tools/composer ([#&#8203;8915](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8915)) - docs: extend FullOpeningTagFixer samples ([#&#8203;8913](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8913)) - docs: extend OperatorLinebreakFixer samples ([#&#8203;8914](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8914)) - docs: more explicit msg for stop using deprecated code ([#&#8203;8922](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8922)) - DX: .gitignore - ignore php-cs-fixer.cache, as it's existence is possible when using env var ([#&#8203;8929](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8929)) ### [`v3.85.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3851) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.85.0...v3.85.1) - chore: update legacy deps ([#&#8203;8902](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8902)) ### [`v3.85.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3850) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.84.0...v3.85.0) - feat: `ArrayIndentationFixer` - handle closures inside attributes ([#&#8203;8888](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8888)) - feat: `NullableTypeDeclarationFixer` - support final promoted properties ([#&#8203;8885](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8885)) - feat: `OperatorLinebreakFixer` - support pipe operator ([#&#8203;8891](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8891)) - feat: `PhpdocTypesFixer` - support multiline array shapes ([#&#8203;8893](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8893)) - fix: always reach 100% of checked files ([#&#8203;8861](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8861)) - fix: `BracesPositionFixer` - handle property hooks correctly ([#&#8203;8886](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8886)) - fix: `NullableTypeDeclarationFixer` - handle abstract and final properties ([#&#8203;8876](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8876)) - fix: `PhpdocLineSpanFixer` - handle promoted properties ([#&#8203;8897](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8897)) - fix: `PhpUnitDataProviderNameFixer` - fix for multiple providers defined by attributes for one test method ([#&#8203;8849](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8849)) - fix: `TernaryOperatorSpacesFixer` - handle `instanceof static` ([#&#8203;8879](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8879)) - fix: `TypeDeclarationSpacesFixer` - handle asymmetric visibility and final properties ([#&#8203;8900](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8900)) - chore: add initial PHP 8.5 integration test ([#&#8203;8871](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8871)) - chore: add tests for public API methods ([#&#8203;8895](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8895)) - chore: apply changes from `PhpdocTypesFixer` for multiline array shapes ([#&#8203;8894](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8894)) - chore: baseline files without error count ([#&#8203;8870](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8870)) - chore: cleanup `PhpCsFixer\DocBlock\Annotation` ([#&#8203;8892](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8892)) - chore: Command name/descriptions - use attribute and static properties ([#&#8203;8862](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8862)) - chore: Commands - unify way to define help content ([#&#8203;8881](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8881)) - chore: ConfigurationResolver - add few missing v4 TODOs ([#&#8203;8882](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8882)) - chore: fix `booleanNot.exprNotBoolean` errors ([#&#8203;8869](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8869)) - chore: fix/optimize some phpdocs ([#&#8203;8889](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8889)) - chore: more unification of PHP CS Fixer naming ([#&#8203;8854](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8854)) - chore: PHPStan baseline - use `shipmonk/phpstan-baseline-per-identifier` ([#&#8203;8844](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8844)) - chore: remove dead code ([#&#8203;8896](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8896)) - chore: remove unused constants ([#&#8203;8864](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8864)) - chore: remove useless `@var` annotations ([#&#8203;8867](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8867)) - chore: simplify `ClassDefinitionFixer` ([#&#8203;8868](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8868)) - chore: unify usage of image versions to not mention minor ([#&#8203;8860](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8860)) - chore: update PHPStan ([#&#8203;8898](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8898)) - chore: update PHPStan extension for `Preg::match` ([#&#8203;8872](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8872)) - chore: wrong return values in `ErrorsManager` ([#&#8203;8863](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8863)) - chore: `OrderedInterfacesFixer` - make code more PHPStan friendly ([#&#8203;8866](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8866)) - chore: `Token` - add `@phpstan-assert-if-true` ([#&#8203;8865](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8865)) - deps: bump phpstan/phpstan from 2.1.17 to 2.1.18 in /dev-tools in the phpstan group ([#&#8203;8859](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8859)) - deps: bump the phpstan group in /dev-tools with 4 updates ([#&#8203;8890](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8890)) - docs: better document deprecated rule sets ([#&#8203;8878](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8878)) - docs: cleanup docs for PHP 7 ([#&#8203;8873](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8873)) - docs: cleanup docs for PHP < 7.4 ([#&#8203;8855](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8855)) - docs: ListSetsCommand,FixCommand - document possible formats in Command's definitions ([#&#8203;8880](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8880)) - DX: Explicitly prevent touching non-monolithic files ([#&#8203;6517](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6517)) ### [`v3.84.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3840) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.83.0...v3.84.0) - feat: Introduce `NoUselessPrintfFixer` ([#&#8203;8820](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8820)) - feat: `CastSpacesFixer` - support `(void)` cast ([#&#8203;8851](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8851)) - feat: `NewExpressionParenthesesFixer` - add to `PHP84MigrationSet` ([#&#8203;8788](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8788)) - feat: `VisibilityRequiredFixer` - support final promoted properties ([#&#8203;8835](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8835)) - fix: `PhpdocToParamTypeFixer` - do not convert types from `phpstan-type`, `phpstan-import-type`, `psalm-type` and `psalm-import-type` ([#&#8203;8842](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8842)) - fix: `PhpdocToPropertyTypeFixer` - do not convert types from `phpstan-type`, `phpstan-import-type`, `psalm-type` and `psalm-import-type` ([#&#8203;8847](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8847)) - fix: `PhpdocToReturnTypeFixer` - do not convert types from `phpstan-type`, `phpstan-import-type`, `psalm-type` and `psalm-import-type` ([#&#8203;8846](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8846)) - chore: introduce FCT for few missing tokens ([#&#8203;8845](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8845)) - chore: remove useless static variables for const content ([#&#8203;8836](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8836)) - chore: simplify `isGivenKind`/`equals`/`equalsAll` calls ([#&#8203;8843](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8843)) - docs: Support for new PHP version ([#&#8203;8780](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8780)) ### [`v3.83.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3830) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.82.2...v3.83.0) - feat: Suppress enable parallel runner message when only 1 core is available ([#&#8203;8833](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8833)) - fix: BracesPositionFixer - fix performance issue for massive files with CT::T\_CURLY\_CLOSE ([#&#8203;8830](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8830)) - fix: `NoUnreachableDefaultArgumentValueFixer` - do not crash on property hook ([#&#8203;8838](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8838)) - chore: Add CS commit to .git-blame-ignore-revs - chore: apply native\_constant\_invocation for build-in consts ([#&#8203;8837](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8837)) - chore: configure native\_constant\_invocation ([#&#8203;8840](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8840)) - chore: early compat check with Symfony 8 ([#&#8203;8827](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8827)) - chore: `FullyQualifiedStrictTypesFixer` - reduce function calls ([#&#8203;8834](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8834)) - CI: mark jobs allow-to-fail declarative, instead of imperative check ([#&#8203;8829](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8829)) ### [`v3.82.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3822) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.82.1...v3.82.2) - fix: `ClassAttributesSeparationFixer` - handle method `get` aliased in trait import ([#&#8203;8822](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8822)) - fix: `LowercaseStaticReferenceFixer` - do not touch enum's cases ([#&#8203;8824](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8824)) - fix: `StatementIndentationFixer` - multi constant statement containing array ([#&#8203;8825](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8825)) - fix: `VisibilityRequiredFixer` - handle promoted property with visibility and reference, but without type ([#&#8203;8823](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8823)) ### [`v3.82.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3821) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.82.0...v3.82.1) - fix: `OrderedClassElementsFixer` - handle property hooks ([#&#8203;8817](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8817)) - fix: `SingleClassElementPerStatementFixer` - fix for property hooks ([#&#8203;8816](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8816)) ### [`v3.82.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3820) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.81.0...v3.82.0) - chore: cleanup `FCTTest` ([#&#8203;8808](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8808)) - chore: PhpdocOrderFixer.php - CPU optimization ([#&#8203;8812](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8812)) - deps: update box ([#&#8203;8795](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8795)) - docs: fix whitespace around code examples and reference sections in rules' docs ([#&#8203;8810](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8810)) - feat: `MagicConstantCasingFixer` - support `__PROPERTY__` ([#&#8203;8809](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8809)) - feat: `PhpUnitDataProviderNameFixer` - support data providers defined by both annotation and attribute for the same test ([#&#8203;8811](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8811)) - fix: `PhpdocToParamTypeFixer` - always handle reference in PHPDoc ([#&#8203;8813](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8813)) ### [`v3.81.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3810) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.80.0...v3.81.0) - feat: `VisibilityRequiredFixer` - handle more than only the first promoted property ([#&#8203;8801](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8801)) - fix: `BracesPositionFixer` - do not crash when variable is terminated by PHP close tag ([#&#8203;8804](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8804)) - fix: `PhpUnitDataProviderMethodOrderFixer` - handle data provider defined by both annotation and attribute ([#&#8203;8805](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8805)) - fix: `PhpUnitInternalClassFixer` - skip adding `@internal` on instantiation of anonymous classes ([#&#8203;8807](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8807)) - fix: `VisibilityRequiredFixer` - handle promoted parameter passed by reference ([#&#8203;8799](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8799)) - chore: add automatically to milestone "PHP 8.5 initial compatibility" if label is "topic/PHP8.5" ([#&#8203;8806](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8806)) - chore: fail "Deployment checks" if any job from `tests` failed ([#&#8203;8792](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8792)) - docs: update docs about --allow-unsupported-php-version ([#&#8203;8796](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8796)) ### [`v3.80.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3800) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.79.0...v3.80.0) - feat: PHP 8.4 compatibility support ([#&#8203;8300](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8300)) ### [`v3.79.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3790) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.78.1...v3.79.0) - chore: `VisibilityRequiredFixerTest` - run tests in correct PHP version ([#&#8203;8790](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8790)) - feat: `BracesPositionFixer` - do not touch one-line properties with hooks ([#&#8203;8785](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8785)) - feat: `PhpUnitDataProvider(.+)Fixer` - support attributes ([#&#8203;8197](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8197)) ### [`v3.78.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3781) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.78.0...v3.78.1) - fix: `VisibilityRequiredFixer` - do not add `public` incorrectly ([#&#8203;8787](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8787)) ### [`v3.78.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3780) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.77.0...v3.78.0) - chore: `VisibilityRequiredFixer` - document behaviour for asymmetric visibility with only set-visibility ([#&#8203;8783](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8783)) - feat: `BracesPositionFixer` - support property hooks ([#&#8203;8782](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8782)) - feat: `VisibilityRequiredFixer` - support promoted property without visibility ([#&#8203;8773](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8773)) - fix: `NativeFunctionInvocationFixer` - fix global function `set` called in array key ([#&#8203;8568](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8568)) - fix: `NoBreakCommentFixer` - handle function having return type ([#&#8203;8767](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8767)) - fix: `StatementIndentationFixer` - handle functions `set` and `get` (like property hooks, but not) ([#&#8203;8576](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8576)) - fix: `StaticPrivateMethodFixer` - handle nested calls ([#&#8203;8768](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8768)) ### [`v3.77.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3770) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.76.0...v3.77.0) - chore: add automatically to milestone "PHP 8.4 initial compatibility" if label is "topic/PHP8.4" ([#&#8203;8770](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8770)) - chore: Add CS commit to .git-blame-ignore-revs - chore: fix adding automatically to milestone "PHP 8.4 initial compatibility" if label is "topic/PHP8.4" ([#&#8203;8775](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8775)) - chore: fix adding automatically to milestone "PHP 8.4 initial compatibility" if label is "topic/PHP8.4" ([#&#8203;8776](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8776)) - chore: move all indicators to analyzers ([#&#8203;8772](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8772)) - chore: move PHP-compat integration tests ([#&#8203;8781](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8781)) - chore: partially apply NoExtraBlankLinesFixer:tokens.comma ([#&#8203;8762](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8762)) - chore: reconfigure phpdoc\_order in local config ([#&#8203;8220](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8220)) - feat: PhpdocOrderFixer - extend support for phpstan and psalm annotations ([#&#8203;8777](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8777)) - feat: support anonymous classes extending `TestCase` in PHPUnit fixers ([#&#8203;8707](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8707)) - feat: `CommentToPhpdocFixer` and `PhpdocToCommentFixer` - support asymmetric visibility ([#&#8203;8774](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8774)) - feat: `NoEmptyStatementFixer` - support abstract property hooks ([#&#8203;8766](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8766)) - feat: `NullableTypeDeclarationForDefaultNullValueFixer` - support asymmetric visibility in the constructor ([#&#8203;8604](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8604)) - feat: `ProtectedToPrivateFixer` - add support for promoted properties ([#&#8203;8608](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8608)) - fix: `PhpUnitAttributesFixer` - correctly remove annotations when configured `['keep_annotations' => false]` ([#&#8203;8577](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8577)) - fix: `ProtectedToPrivateFixer` - fix asymmetric visibility with only set visibility ([#&#8203;8763](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8763)) ### [`v3.76.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3760) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.75.0...v3.76.0) - chore(release): bump php ci alpine version ([#&#8203;8581](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8581)) - chore: add missing priority test for `BracesPositionFixer` and `MultilinePromotedPropertiesFixer` ([#&#8203;8596](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8596)) - chore: add more assertions in tests ([#&#8203;8740](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8740)) - chore: bump dependencies version to maximum for non-newest MAJOR version ([#&#8203;8753](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8753)) - chore: cast types in tests ([#&#8203;8742](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8742)) - chore: cleanup booleans use in tests ([#&#8203;8738](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8738)) - chore: cleanup code in tests ([#&#8203;8745](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8745)) - chore: cleanup PsrAutoloadingFixerTest.php keywords handling, as always defined currently ([#&#8203;8730](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8730)) - chore: cleanup `AlignMultilineCommentFixerTest` ([#&#8203;8688](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8688)) - chore: cleanup `BinaryOperatorSpacesFixerTest` ([#&#8203;8687](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8687)) - chore: cleanup `BlankLineBeforeStatementFixerTest` ([#&#8203;8685](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8685)) - chore: cleanup `ClassDefinitionFixerTest` ([#&#8203;8684](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8684)) - chore: cleanup `ClassDefinitionFixer` ([#&#8203;8580](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8580)) - chore: cleanup `ConcatSpaceFixerTest` ([#&#8203;8683](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8683)) - chore: cleanup `DoctrineAnnotationArrayAssignmentFixerTest` ([#&#8203;8621](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8621)) - chore: cleanup `DoctrineAnnotationBracesFixerTest` ([#&#8203;8623](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8623)) - chore: cleanup `DoctrineAnnotationIndentationFixerTest` ([#&#8203;8620](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8620)) - chore: cleanup `DoctrineAnnotationSpacesFixerTest` ([#&#8203;8624](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8624)) - chore: cleanup `EchoTagSyntaxFixerTest` ([#&#8203;8681](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8681)) - chore: cleanup `file_get_contents` return types ([#&#8203;8735](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8735)) - chore: cleanup `FunctionDeclarationFixerTest` ([#&#8203;8680](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8680)) - chore: cleanup `FunctionToConstantFixerTest` ([#&#8203;8618](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8618)) - chore: cleanup `GeneralPhpdocTagRenameFixerTest` ([#&#8203;8627](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8627)) - chore: cleanup `GlobalNamespaceImportFixerTest` ([#&#8203;8679](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8679)) - chore: cleanup `HeaderCommentFixerTest` ([#&#8203;8677](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8677)) - chore: cleanup `HeaderCommentFixerTest` (restore `@requires` for PHP 8.1) ([#&#8203;8678](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8678)) - chore: cleanup `IncrementStyleFixerTest` ([#&#8203;8676](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8676)) - chore: cleanup `IndentationTypeFixerTest` ([#&#8203;8675](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8675)) - chore: cleanup `ListSyntaxFixerTest` ([#&#8203;8674](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8674)) - chore: cleanup `MethodArgumentSpaceFixerTest` ([#&#8203;8673](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8673)) - chore: cleanup `MultilineWhitespaceBeforeSemicolonsFixerTest` ([#&#8203;8614](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8614)) - chore: cleanup `NativeConstantInvocationFixerTest` ([#&#8203;8672](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8672)) - chore: cleanup `NewWithParenthesesFixerTest` ([#&#8203;8592](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8592)) - chore: cleanup `NoBlankLinesAfterPhpdocFixerTest` ([#&#8203;8671](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8671)) - chore: cleanup `NoBreakCommentFixerTest` ([#&#8203;8670](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8670)) - chore: cleanup `NoClosingTagFixerTest` ([#&#8203;8669](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8669)) - chore: cleanup `NoEmptyStatementFixerTest` ([#&#8203;8667](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8667)) - chore: cleanup `NoSpacesAroundOffsetFixerTest` ([#&#8203;8666](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8666)) - chore: cleanup `NoUnneededControlParenthesesFixerTest` ([#&#8203;8665](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8665)) - chore: cleanup `NoUselessElseFixerTest` ([#&#8203;8664](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8664)) - chore: cleanup `PhpdocAddMissingParamAnnotationFixerTest` ([#&#8203;8663](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8663)) - chore: cleanup `PhpdocNoEmptyReturnFixerTest` ([#&#8203;8662](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8662)) - chore: cleanup `PhpdocNoPackageFixerTest` ([#&#8203;8626](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8626)) - chore: cleanup `PhpdocOrderByValueFixerTest` ([#&#8203;8661](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8661)) - chore: cleanup `PhpdocOrderFixerTest` ([#&#8203;8660](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8660)) - chore: cleanup `PhpdocParamOrderFixerTest` ([#&#8203;8659](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8659)) - chore: cleanup `PhpdocReturnSelfReferenceFixerTest` ([#&#8203;8658](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8658)) - chore: cleanup `PhpdocSeparationFixerTest` ([#&#8203;8657](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8657)) - chore: cleanup `PhpdocSummaryFixerTest` ([#&#8203;8654](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8654)) - chore: cleanup `PhpdocTrimFixerTest` ([#&#8203;8653](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8653)) - chore: cleanup `PhpdocTypesOrderFixerTest` ([#&#8203;8652](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8652)) - chore: cleanup `PhpdocVarWithoutNameFixerTest` ([#&#8203;8617](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8617)) - chore: cleanup `PhpUnitConstructFixerTest` ([#&#8203;8651](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8651)) - chore: cleanup `PhpUnitDedicateAssertFixerTest` ([#&#8203;8650](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8650)) - chore: cleanup `PhpUnitTestCaseStaticMethodCallsFixerTest` ([#&#8203;8649](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8649)) - chore: cleanup `Preg` issues ([#&#8203;8720](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8720)) - chore: cleanup `ReturnAssignmentFixerTest` ([#&#8203;8648](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8648)) - chore: cleanup `ReturnTypeDeclarationFixerTest` ([#&#8203;8647](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8647)) - chore: cleanup `SingleImportPerStatementFixerTest` ([#&#8203;8645](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8645)) - chore: cleanup `SingleLineCommentStyleFixerTest` ([#&#8203;8644](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8644)) - chore: cleanup `SingleSpaceAroundConstructFixerTest` ([#&#8203;8642](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8642)) - chore: cleanup `SpaceAfterSemicolonFixerTest` ([#&#8203;8625](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8625)) - chore: cleanup `SpacesInsideParenthesesFixerTest` ([#&#8203;8641](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8641)) - chore: cleanup `StatementIndentationFixerTest` ([#&#8203;8640](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8640)) - chore: cleanup `YodaStyleFixerTest` ([#&#8203;8638](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8638)) - chore: do not check if `JSON_INVALID_UTF8_IGNORE` is defined because it always is (since PHP 7.2) ([#&#8203;8709](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8709)) - chore: handle saveXML failures explicitly ([#&#8203;8755](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8755)) - chore: ignore remaining PHPStan (false positive) issues ([#&#8203;8746](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8746)) - chore: improve PHPDoc's types in ([#&#8203;8741](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8741)) - chore: improve PHPDocs in tests ([#&#8203;8736](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8736)) - chore: improve PHPDocs in tests ([#&#8203;8744](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8744)) - chore: improve type of `Token::equalsAny` ([#&#8203;8743](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8743)) - chore: lint yaml files ([#&#8203;8622](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8622)) - chore: MultilinePromotedPropertiesFixer - mark new fixer introduced in [#&#8203;8595](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8595) as experimental ([#&#8203;8758](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8758)) - chore: PHPMD - cleanup `UnusedLocalVariable` for `foreach` ([#&#8203;8637](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8637)) - chore: refactor FCT ([#&#8203;8714](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8714)) - chore: remove unused local variables in src ([#&#8203;8600](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8600)) - chore: remove unused local variables in tests ([#&#8203;8599](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8599)) - chore: remove useless test from `AliasedFixerOptionTest` ([#&#8203;8739](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8739)) - chore: remove `defined` calls from tests ([#&#8203;8708](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8708)) - chore: restore original type of Token::equalsAny, partially reverts [#&#8203;8743](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8743) ([#&#8203;8759](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8759)) - chore: run mutation tests on PHP 8.4 ([#&#8203;8594](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8594)) - chore: solve one of phpstan warnings ([#&#8203;8754](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8754)) - chore: update dev tools ([#&#8203;8737](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8737)) - chore: update PHPUnit config ([#&#8203;8721](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8721)) - chore: update `checkbashisms` to 2.25.12 ([#&#8203;8694](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8694)) - chore: update `checkbashisms` to 2.25.14 ([#&#8203;8731](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8731)) - chore: use PHPStan type in data providers ([#&#8203;8605](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8605)) - chore: use `foreach` values ([#&#8203;8636](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8636)) - chore: use `Preg` class everywhere ([#&#8203;8689](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8689)) - CI: add self-approved label ([#&#8203;8757](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8757)) - CI: run on PHP 8.5 ([#&#8203;8713](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8713)) - deps: bump alpine from 3.21.3 to 3.22.0 ([#&#8203;8724](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8724)) - deps: bump alpine from 3.21.3 to 3.22.0 ([#&#8203;8726](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8726)) - deps: bump ergebnis/composer-normalize from 2.45.0 to 2.46.0 in /dev-tools ([#&#8203;8578](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8578)) - deps: bump ergebnis/composer-normalize from 2.46.0 to 2.47.0 in /dev-tools ([#&#8203;8584](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8584)) - deps: bump phpstan/phpstan from 2.1.11 to 2.1.12 in /dev-tools in the phpstan group ([#&#8203;8583](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8583)) - deps: bump phpstan/phpstan-symfony from 2.0.3 to 2.0.4 in /dev-tools in the phpstan group ([#&#8203;8557](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8557)) - deps: bump the phpstan group across 1 directory with 2 updates ([#&#8203;8682](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8682)) - deps: upgrade docker deps ([#&#8203;8566](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8566)) - docs: extend and fix links to code ([#&#8203;8639](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8639)) - docs: Update SECURITY.md ([#&#8203;8716](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8716)) - docs: VisibilityRequiredFixer - extend docs ([#&#8203;8561](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8561)) - docs: `VisibilityRequiredFixer` - update docs ([#&#8203;8563](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8563)) - DX: add `symfony/polyfill-php84` ([#&#8203;8555](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8555)) - DX: always use the latest stable `checkbashisms` package ([#&#8203;8732](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8732)) - DX: check for `preg_` functions in tests ([#&#8203;8571](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8571)) - DX: cleanup `BlankLinesBeforeNamespaceFixerTest` ([#&#8203;8573](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8573)) - DX: cleanup `NativeFunctionInvocationFixerTest` ([#&#8203;8567](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8567)) - DX: cleanup `NoUselessConcatOperatorFixerTest` ([#&#8203;8572](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8572)) - DX: cleanup `SemicolonAfterInstructionFixerTest` ([#&#8203;8570](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8570)) - DX: fix data providers ([#&#8203;8693](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8693)) - DX: introduce `FCT` class for tokens not present in the lowest supported PHP version ([#&#8203;8706](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8706)) - DX: move `symfony/polyfill-php84` to dev deps ([#&#8203;8559](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8559)) - DX: support PHP 8.4 in local Docker development environment ([#&#8203;8564](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8564)) - DX: trim array/yield keys ([#&#8203;8460](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8460)) - DX: use `WhitespacesAwareFixerInterface` only when needed ([#&#8203;8541](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8541)) - feat: add `NewExpressionParenthesesFixer` ([#&#8203;8246](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8246)) - feat: allowUnsupportedPhpVersion ([#&#8203;8733](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8733)) - feat: introduce `MultilinePromotedPropertiesFixer` ([#&#8203;8595](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8595)) - feat: Introduce `StaticPrivateMethodFixer` ([#&#8203;4557](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/4557)) - feat: `BracesPositionFixer` - support property hooks in promoted properties ([#&#8203;8613](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8613)) - feat: `ClassAttributesSeparationFixer` - add support for property hooks ([#&#8203;8610](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8610)) - feat: `GlobalNamespaceImportFixer` - analyse and fix more annotations with types ([#&#8203;8593](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8593)) - feat: `LowercaseKeywordsFixer` - support asymmetric visibility ([#&#8203;8607](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8607)) - feat: `NoExtraBlankLinesFixer` - add comma to supported tokens ([#&#8203;8655](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8655)) - feat: `NoSuperfluousPhpdocTagsFixer` - support asymmetric visibility ([#&#8203;8700](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8700)) - feat: `NullableTypeDeclarationFixer` - support asymmetric visibility ([#&#8203;8697](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8697)) - feat: `OrderedClassElementsFixer` - add support for property hooks for abstract properties ([#&#8203;8574](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8574)) - feat: `OrderedTypesFixer` - add support for asymmetric visibility ([#&#8203;8552](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8552)) - feat: `OrderedTypesFixer` - support asymmetric visibility in promoted property ([#&#8203;8602](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8602)) - feat: `PhpdocAddMissingParamAnnotationFixer` - support asymmetric visibility ([#&#8203;8701](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8701)) - feat: `PhpdocLineSpanFixer` - support asymmetric visibility ([#&#8203;8702](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8702)) - feat: `PhpdocVarWithoutNameFixer` - support asymmetric visibility ([#&#8203;8704](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8704)) - feat: `ProtectedToPrivateFixer` - add support for asymmetric visibility ([#&#8203;8569](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8569)) - feat: `SingleClassElementPerStatementFixer` - support asymmetric visibility ([#&#8203;8696](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8696)) - feat: `SingleSpaceAroundConstructFixer` - add support for asymmetric visibility ([#&#8203;8699](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8699)) - feat: `StaticLambdaFixer` - support functions having classy elements with `$this` ([#&#8203;8728](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8728)) - feat: `VisibilityRequiredFixer` - support ordering set-visibility modifier ([#&#8203;8606](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8606)) - fix(dependabot): convert time values to string types ([#&#8203;8634](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8634)) - fix: "array" type must have no prefix to be fixable to "list" ([#&#8203;8692](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8692)) - fix: "min"/"max" in int generics must never be prefixed by backslash ([#&#8203;8691](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8691)) - fix: Allow non-doc comment on opening inline brace line ([#&#8203;8690](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8690)) - fix: `ConstantCaseFixer` - do not touch namespaces starting with `Null\` ([#&#8203;8752](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8752)) - fix: `LowercaseStaticReferenceFixer` - do not change global constants ([#&#8203;8727](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8727)) - fix: `MultilineWhitespaceBeforeSemicolonsFixer` - do not touch multiline constants definitions ([#&#8203;8615](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8615)) - fix: `NewWithParenthesesFixer` - fix `new` without parentheses on PHP 8.4 syntax ([#&#8203;8588](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8588)) - fix: `NoMultipleStatementsPerLineFixer` - handle `set` and `get` in different casing in property hooks ([#&#8203;8558](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8558)) - fix: `NoUnusedImportsFixer` - handle imported class name with underscore before or after it in PHPDoc ([#&#8203;8598](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8598)) - fix: `PhpUnitDedicateAssertFixer` - fix for `assertFalse` with `instanceof` ([#&#8203;8597](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8597)) - fix: `PhpUnitNamespacedFixer` must rune before `NoUnneededImportAliasFixer` ([#&#8203;8579](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8579)) - fix: `PhpUnitTestClassRequiresCoversFixer` - do not add `@coversNothing` annotation when `CoversTrait` attribute is used ([#&#8203;8734](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8734)) - fix: `VisibilityRequiredFixer` - add support for asymmetric visibility ([#&#8203;8586](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8586)) - refactor: avoid unused local variables in tests ([#&#8203;8609](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8609)) - test: add more cases to `PhpUnitMethodCasingFixerTest` ([#&#8203;8551](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8551)) - test: fix "unused local variables `$token`" ([#&#8203;8603](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8603)) - test: More verbose error output for integration test ([#&#8203;8565](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8565)) - Update SECURITY.md ### [`v3.75.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3750) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.74.0...v3.75.0) - feat: `ClassAttributesSeparationFixer` - add support for asymmetric visibility ([#&#8203;8518](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8518)) - fix: `NativeFunctionInvocationFixer` - fix for property hooks ([#&#8203;8540](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8540)) - chore: add return types for data providers for fixers ([#&#8203;8542](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8542)) - chore: add return types for data providers for non-fixers ([#&#8203;8543](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8543)) - chore: add return types for remaining data providers ([#&#8203;8544](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8544)) - chore: make data providers key type `int` if all the keys are strings ([#&#8203;8550](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8550)) - chore: make data providers key type `string` if all the keys are strings ([#&#8203;8545](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8545)) - chore: SwitchContinueToBreakFixerTest - improve test case descriptions/typehint ([#&#8203;8546](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8546)) - chore: `FunctionsAnalyzerTest` cleanup ([#&#8203;8539](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8539)) - deps: bump the phpstan group in /dev-tools with 2 updates ([#&#8203;8537](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8537)) - test: ProjectCodeTest::testDataProvidersDeclaredReturnType - allow for int as iterable keys ([#&#8203;8548](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8548)) ### [`v3.74.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3740) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.73.1...v3.74.0) - feat: add `--format=@&#8203;auto` ([#&#8203;8513](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8513)) - fix: `BracesPositionFixer` - do not create two consecutive whitespace tokens ([#&#8203;8496](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8496)) - fix: `MbStrFunctionsFixer` - fix imports with leading backslash ([#&#8203;8507](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8507)) - fix: `NoUnreachableDefaultArgumentValueFixer` - do not crash on property hook ([#&#8203;8512](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8512)) - fix: `OrderedImportsFixer` - do not take the braces part in grouped imports into account ([#&#8203;8459](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8459)) - fix: `OrderedImportsFixer` - fix syntax error with grouped use statement and multiple use with comma ([#&#8203;8483](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8483)) - fix: `PhpUnitAttributesFixer` - handle parentheses after data provider method name ([#&#8203;8510](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8510)) - fix: `PhpUnitMethodCasingFixer` - do not touch anonymous class ([#&#8203;8463](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8463)) - chore: make options that have default and allowed sets the same size the same array ([#&#8203;8529](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8529)) - chore: update return type of `FixerOptionInterface::getAllowedValues` ([#&#8203;8530](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8530)) - chore: `Preg` - improve types ([#&#8203;8527](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8527)) - CI: fix code coverage job ([#&#8203;8520](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8520)) - CI: try MacOS job without ParaUnit ([#&#8203;8528](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8528)) - deps: update PHPStan ([#&#8203;8531](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8531)) - deps: upgrade `PHPStan/*` ([#&#8203;8524](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8524)) ### [`v3.73.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3731) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.73.0...v3.73.1) - fix: `OrderedClassElementsFixer` - do not crash on property hook ([#&#8203;8517](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8517)) ### [`v3.73.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3730) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.72.0...v3.73.0) - feat: add support for asymmetric visibility to Doctrine's fixers ([#&#8203;8415](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8415)) - fix: `GeneralPhpdocTagRenameFixer` - do not rename keys in array shape definition ([#&#8203;8477](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8477)) - fix: `MethodArgumentSpaceFixer` - handle when nested in HTML ([#&#8203;8503](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8503)) - chore: update `checkbashisms` to 2.25.5 ([#&#8203;8519](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8519)) - DX: cleanup `NoExtraBlankLinesFixerTest` ([#&#8203;8505](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8505)) - DX: for duplicated test methods check methods without parameters ([#&#8203;8508](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8508)) - DX: remove more duplicated test methods ([#&#8203;8506](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8506)) - refactor: `Tokenizer` hash metode using `xxHash` ([#&#8203;8491](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8491)) - refactor: `TokensAnalyzerTest` - better test `isArray` and `isArrayMultiLine` ([#&#8203;8504](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8504)) - test: run code coverage on PHP 8.4 ([#&#8203;8448](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8448)) ### [`v3.72.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3720) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.71.0...v3.72.0) - feat: `StatementIndentationFixer` - handle property hooks ([#&#8203;8492](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8492)) - fix: `MbStrFunctionsFixer` - fix imports ([#&#8203;8474](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8474)) - fix: `TrailingCommaInMultilineFixer` - handle empty match body ([#&#8203;8480](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8480)) - fix: `VisibilityRequiredFixer` - handle property hooks ([#&#8203;8495](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8495)) - deps: upgrade few dev-deps ([#&#8203;8490](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8490)) - deps: Upgrade PHPStan to 2.1.8 ([#&#8203;8489](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8489)) - DX: add trailing comma to multiline auto-generated types ([#&#8203;8499](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8499)) - refactor: generalize CodeHasher into Hasher ([#&#8203;8500](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8500)) - refactor: Runner - unify paths used when using parallel runner ([#&#8203;8488](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8488)) - refactor: use Hasher instead of md5 directly ([#&#8203;8501](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8501)) ### [`v3.71.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3710) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.70.2...v3.71.0) - feat: OrderedImportsFixer - deprecate length sorting algorithm ([#&#8203;8473](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8473)) - fix: `BinaryOperatorSpacesFixer` - do not break alignment of UTF-8 array keys ([#&#8203;8484](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8484)) - fix: `PhpdocAlignFixer` - align correctly type with UTF8 characters ([#&#8203;8486](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8486)) - fix: `SingleSpaceAroundConstructFixer` - handle alternative syntax ([#&#8203;8317](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8317)) - fix: `StatementIndentationFixer` - return in braceless if ([#&#8203;8479](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8479)) - chore: update type in `SingleSpaceAroundConstructFixerTest::provideFixWithElseIfCases` ([#&#8203;8481](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8481)) - chore: update type in `SingleSpaceAroundConstructFixerTest::provideFixWithIfCases` ([#&#8203;8482](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8482)) - deps: bump phpstan/phpstan from 2.1.6 to 2.1.7 in /dev-tools in the phpstan group ([#&#8203;8485](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8485)) - DX: cleanup `PhpdocNoAliasTagFixerTest` ([#&#8203;8476](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8476)) - refactor: add `FullyQualifiedNameAnalyzer` ([#&#8203;8048](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8048)) - refactor: codeHash - update when it's (re-)generated ([#&#8203;8470](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8470)) - refactor: `SwitchAnalyzer` - improve performance ([#&#8203;8407](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8407)) - test: NameQualifiedTransformerTest - correct test case ([#&#8203;8471](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8471)) ### [`v3.70.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3702) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.70.1...v3.70.2) - deps: upgrade deep dev-tools deps ([#&#8203;8472](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8472)) - fix: `MbStrFunctionsFixer` must run before `NativeFunctionInvocationFixer` ([#&#8203;8466](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8466)) - fix: `MethodArgumentSpaceFixer` - fix nested calls for `ensure_fully_multiline` option ([#&#8203;8469](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8469)) ### [`v3.70.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3701) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.70.0...v3.70.1) - fix: `PhpUnitSizeClassFixer` must run before `PhpUnitAttributesFixer` ([#&#8203;8457](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8457)) - DX: cleanup `OrderedImportsFixerTest` ([#&#8203;8458](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8458)) ### [`v3.70.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3700) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.69.1...v3.70.0) - feat: Add `PhpUnitDataProviderMethodOrderFixer` fixer ([#&#8203;8225](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8225)) - feat: `HeaderCommentFixer` - allow validators ([#&#8203;8452](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8452)) - feat: `PhpCsFixer` ruleset: use `operator_linebreak` rule for all operators ([#&#8203;8417](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8417)) - feat: `PhpUnitMethodCasingFixer` to support PHPUnit's `Test` attribute ([#&#8203;8451](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8451)) - feat: `TypeDeclarationSpacesFixer` - Fix whitespace between const type and const name ([#&#8203;8442](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8442)) - chore: extend bug report template ([#&#8203;8447](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8447)) - chore: extend bug report template - more installation options ([#&#8203;8450](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8450)) - CI: phpstan-symfony - add entry point for console ([#&#8203;8292](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8292)) - deps: bump alpine from 3.21.2 to 3.21.3 ([#&#8203;8454](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8454)) - deps: bump phpstan/phpstan from 2.1.5 to 2.1.6 in /dev-tools in the phpstan group ([#&#8203;8453](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8453)) - fix: `CommentsAnalyzer` - allow other forms of assignment as valid structural elements for PHPDocs ([#&#8203;8371](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8371)) - fix: `PhpUnitTestClassRequiresCoversFixer` must run before `PhpUnitAttributesFixer` ([#&#8203;8444](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8444)) - test: fix `CheckCommandTest::testDryRunModeIsUnavailable` to correctly check that option `--dry-run` is unavailable ([#&#8203;8438](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8438)) ### [`v3.69.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3691) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.69.0...v3.69.1) - fix: `PhpUnitAttributesFixer` - convert correctly version constraint ([#&#8203;8439](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8439)) - test: `PhpUnitAttributesFixer` must run before `NoEmptyPhpdocFixer` ([#&#8203;8443](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8443)) ### [`v3.69.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3690) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.68.5...v3.69.0) - feat: Add unsealed array shape phpdoc support ([#&#8203;8299](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8299)) - fix: `OrderedClassElementsFixer` - sort correctly typed constants ([#&#8203;8408](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8408)) - chore: do not use test class as test data ([#&#8203;8430](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8430)) - chore: update `checkbashisms` to 2.25.2 ([#&#8203;8427](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8427)) - chore: use constants instead of literal strings ([#&#8203;8422](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8422)) - CI: no need to unlock deps on master ([#&#8203;8426](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8426)) - CI: run tests using PHPUnit 12 ([#&#8203;8431](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8431)) - deps: bump kubawerlos/composer-smaller-lock from 1.0.1 to 1.1.0 in /dev-tools ([#&#8203;8414](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8414)) - deps: bump maglnet/composer-require-checker from 4.14.0 to 4.15.0 in /dev-tools ([#&#8203;8406](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8406)) - deps: bump phpstan/phpstan from 2.1.3 to 2.1.5 in /dev-tools in the phpstan group ([#&#8203;8437](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8437)) - deps: bump the phpstan ([#&#8203;8423](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8423)) - deps: upgrade dev requirements ([#&#8203;8424](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8424)) ### [`v3.68.5`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3685) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.68.4...v3.68.5) - fix: `NativeTypeDeclarationCasingFixer` - do not touch constants named as native types ([#&#8203;8404](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8404)) ### [`v3.68.4`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3684) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.68.3...v3.68.4) - chore: run SCA on PHP 8.4 ([#&#8203;8396](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8396)) - fix: NativeTypeDeclarationCasingFixer should not touch property names ([#&#8203;8400](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8400)) ### [`v3.68.3`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3683) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.68.2...v3.68.3) - fix: `NativeTypeDeclarationCasingFixer` - fix for enum with "Mixed" case ([#&#8203;8395](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8395)) ### [`v3.68.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3682) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.68.1...v3.68.2) - fix: `NativeTypeDeclarationCasingFixer` - fix for promoted properties, enums, `false` and `mixed` ([#&#8203;8386](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8386)) - chore: ensure that `dev-tools` dependencies are bumped ([#&#8203;8389](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8389)) - chore: experiment to see if we can auto-shrink the lock after dependabot ([#&#8203;8383](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8383)) - chore: experiment to see if we can auto-shrink the lock after dependabot /part ([#&#8203;8384](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8384)) - chore: Get rid of Docker warnings during build ([#&#8203;8379](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8379)) - chore: remove redundant check ([#&#8203;8391](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8391)) - chore: update types ([#&#8203;8390](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8390)) - CI: stale - update close msg to emphasize contribution over demand ([#&#8203;8385](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8385)) - deps: bump phpcompatibility/phpcompatibility-symfony from 1.2.1 to 1.2.2 in /dev-tools ([#&#8203;8378](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8378)) - deps: bump the phpstan group in /dev-tools with 4 updates ([#&#8203;8387](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8387)) - refactor: Use native `Yaml::parseFile()` instead of custom method ([#&#8203;8380](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8380)) ### [`v3.68.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3681) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.68.0...v3.68.1) - chore: `AutoReview/CiConfigurationTest` - handle failure of reading files ([#&#8203;8375](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8375)) - CI: `Docker` - check all `compose` services ([#&#8203;8370](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8370)) - deps: bump alpine from 3.18 to 3.21 ([#&#8203;8377](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8377)) - deps: bump alpine from 3.18.4 to 3.21.2 ([#&#8203;8362](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8362)) - refactor: Tokens::clearEmptyTokens - optimize cache handling ([#&#8203;8335](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8335)) ### [`v3.68.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3680) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.67.1...v3.68.0) - feat: `ModernizeStrposFixer` - support `stripos` ([#&#8203;8019](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8019)) - chore: `FullyQualifiedStrictTypesFixer` - reduce conditions count ([#&#8203;8368](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8368)) - test: `PhpUnitSetUpTearDownVisibilityFixer` - extend test for anonymous classes ([#&#8203;8369](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8369)) ### [`v3.67.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3671) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.67.0...v3.67.1) - fix: `FullyQualifiedStrictTypesFixer` - fix return types ([#&#8203;8367](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8367)) - fix: `PhpUnitSetUpTearDownVisibilityFixer` - do not touch anonymous classes ([#&#8203;8366](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8366)) - chore: allow for class-string in doc types of rule options ([#&#8203;8358](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8358)) - chore: CS: Move data provider methods after their test method ([#&#8203;8302](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8302)) - chore: dependabot integration ([#&#8203;8357](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8357)) - chore: `PHPStan` - upgrade to 2.1 ([#&#8203;8355](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8355)) - CI: Introduce PHP compatibility check ([#&#8203;7844](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7844)) - deps: bump docker/build-push-action from 5 to 6 ([#&#8203;8361](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8361)) - docs: update installation instructions ([#&#8203;8356](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8356)) ### [`v3.67.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3670) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.66.2...v3.67.0) - chore: simplify loops using `end`/`prev` functions ([#&#8203;8352](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8352)) - feat: Introduce `general_attribute_remove` fixer ([#&#8203;8339](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8339)) ### [`v3.66.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3662) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.66.1...v3.66.2) - chore: do not use bitwise "or" assignment operator ([#&#8203;8346](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8346)) - chore: remove extra check, never happening ([#&#8203;8348](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8348)) - chore: remove impossible `@throws` annotation ([#&#8203;8353](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8353)) - chore: Tokens - cleanup ([#&#8203;8350](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8350)) - chore: Tokens - minor performance and types optimizations ([#&#8203;8349](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8349)) ### [`v3.66.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3661) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.66.0...v3.66.1) - chore: fix CI for Windows ([#&#8203;8326](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8326)) - chore: `NoMultipleStatementsPerLineFixer` - be aware of PHP 8.4 property hooks ([#&#8203;8344](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8344)) - chore: `TernaryToElvisOperatorFixer` - improvements based on PHPStan detections ([#&#8203;8345](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8345)) - chore: `PhpUnitTestCaseStaticMethodCallsFixer` - fix type of `methods` option in documentation and add example with it ([#&#8203;8338](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8338)) - chore: update legacy deps ([#&#8203;8342](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8342)) - deps: update box ([#&#8203;8336](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8336)) ### [`v3.66.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3660) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.65.0...v3.66.0) - feat: `Tokenizer` - initial support for PHP 8.4 property hooks ([#&#8203;8312](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8312)) - feat: `PhpUnitTestCaseStaticMethodCallsFixer` - cover PHPUnit v11.5 methods ([#&#8203;8314](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8314)) - feat: `PhpUnitTestCaseStaticMethodCallsFixer` - make sure all static protected methods are handled ([#&#8203;8327](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8327)) - feat: `PhpUnitTestCaseStaticMethodCallsFixer` - support createStub ([#&#8203;8319](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8319)) - feat: `UseArrowFunctionsFixer` - support multiline statements ([#&#8203;8311](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8311)) - fix: `NullableTypeDeclarationFixer` - do not break multi-line declaration ([#&#8203;8331](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8331)) - test: `CiConfigurationTest` - drop not needed condition, logic is checked in upcoming assertion ([#&#8203;8303](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8303)) - chore: add more typehints ([#&#8203;8325](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8325)) - chore: `DotsOutput` - more const, better typing ([#&#8203;8318](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8318)) - chore: mark classes as readonly ([#&#8203;8275](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8275)) - chore: more const, better typing ([#&#8203;8320](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8320)) - chore: temporarily prevent symfony/process 7.2+ ([#&#8203;8322](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8322)) - chore: `Tokens` - simplify (un)registerFoundToken types ([#&#8203;8328](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8328)) - chore: upgrade PHPStan ([#&#8203;8321](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8321)) - chore: `BraceTransformer` - don't touch curly index braces since 8.4, as it's not a valid syntax anymore ([#&#8203;8313](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8313)) - CI: enable phpdoc\_to\_property\_type on php-lowest ([#&#8203;8324](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8324)) - Create SECURITY.md - docs: `Tokens` - fix docs ([#&#8203;8332](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8332)) ### [`v3.65.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3650) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.64.0...v3.65.0) - feat: Ability to set upper limit when using CPU auto-detection ([#&#8203;8280](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8280)) - feat: create `@PHP82Migration:risky` ruleset ([#&#8203;8277](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8277)) - feat: Impl. TypeExpression::mapTypes() ([#&#8203;8077](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8077)) - feat: Parse array/generic/nullable type into inner expression ([#&#8203;8106](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8106)) - feat: phpdoc\_to\_property\_type - handle virtual types and null initialization, enable in php-highest CI job ([#&#8203;8283](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8283)) - feat: Store PHPDoc offset in `DataProviderAnalysis` ([#&#8203;8226](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8226)) - feat: Support for complex PHPDoc types in `fully_qualified_strict_types` ([#&#8203;8085](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8085)) - fix: check for priority tests correctly ([#&#8203;8221](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8221)) - fix: Do not mark with `@coversNothing` if `CoversMethod`/`CoversFunction` attribute is used ([#&#8203;8268](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8268)) - fix: enum-case mistaken for const invocation ([#&#8203;8190](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8190)) - fix: fix typing of few properties wrongly typed as non-nullable ([#&#8203;8285](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8285)) - fix: fix typing property wrongly typed as non-nullable ([#&#8203;8290](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8290)) - fix: MethodChainingIndentationFixer does not fix indentation of last chained property ([#&#8203;8080](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8080)) - fix: NoSuperfluousPhpdocTagsFixer - Remove superfluous phpdoc of parameter with attribute ([#&#8203;8237](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8237)) - fix: parsing mixed `&` and `|` in `TypeExpression` ([#&#8203;8210](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8210)) - fix: proper base class used for AbstractDoctrineAnnotationFixer templates generation ([#&#8203;8291](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8291)) - fix: Properly recognise constants in foreach loops ([#&#8203;8203](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8203)) - fix: Tokens::overrideRange() block cache pruning ([#&#8203;8240](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8240)) - fix: `BlankLineAfterOpeningTagFixer` - add blank line in file starting with multi-line comment ([#&#8203;8256](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8256)) - fix: `MultilineWhitespaceBeforeSemicolonsFixer` - do not produce syntax error when there is a meaningful token after semicolon ([#&#8203;8230](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8230)) - fix: `NullableTypeDeclarationFixer` - do not break syntax when there is no space before `?` ([#&#8203;8224](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8224)) - fix: `PhpUnitDataProvider(.+)Fixer` - do not omit when there is an attribute between PHPDoc and test method ([#&#8203;8185](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8185)) - fix: `PhpUnitDataProviderNameFixer` - for an attribute between PHPDoc and test method ([#&#8203;8217](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8217)) - chore: add todo for PHP v8 ([#&#8203;8274](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8274)) - chore: auto-fallback to sequential runner if single CPU would handle it ([#&#8203;8154](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8154)) - chore: block changing tokens collection size using `PhpCsFixer\Tokenizer\Tokens::setSize` ([#&#8203;8257](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8257)) - chore: bump dev-tools ([#&#8203;8286](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8286)) - chore: bump PHPStan ([#&#8203;8245](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8245)) - chore: Cheaper file check first ([#&#8203;8252](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8252)) - chore: ConfigInterface - better types ([#&#8203;8244](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8244)) - chore: do not call `Tokens::setSize` in `GroupImportFixer` ([#&#8203;8253](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8253)) - chore: do not use `Reflection*::setAccessible` ([#&#8203;8264](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8264)) - chore: fix priority tests ([#&#8203;8223](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8223)) - chore: Fix typos in AbstractFixerTestCase ([#&#8203;8247](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8247)) - chore: GithubClient - make URL injectable ([#&#8203;8272](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8272)) - chore: Implement PHPStan `Preg::match()` extensions ([#&#8203;8103](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8103)) - chore: mark remaining Analysis as `@internal` ([#&#8203;8284](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8284)) - chore: PHPStan - upgrade to v2 ([#&#8203;8288](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8288)) - chore: reduce amount of class mutable properties ([#&#8203;8281](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8281)) - chore: remove from priority tests exceptions tests that are not actually exceptions ([#&#8203;8222](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8222)) - chore: remove incorrect priority tests ([#&#8203;8231](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8231)) - chore: remove not needed PHP version requirements in descriptions ([#&#8203;8265](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8265)) - chore: remove unnecessary methods ([#&#8203;8200](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8200)) - chore: tests/Tokenizer/Transformer - better typehinting ([#&#8203;8243](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8243)) - chore: Token - remove 'changed' property ([#&#8203;8273](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8273)) - chore: Token::getContent() phpdoc return type ([#&#8203;8236](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8236)) - chore: update dev dependencies in root ([#&#8203;8289](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8289)) - chore: update PHPStan to 1.12.9 ([#&#8203;8271](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8271)) - chore: update `checkbashisms` to 2.24.1 ([#&#8203;8258](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8258)) - chore: use null coalescing assignment operator where possible ([#&#8203;8219](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8219)) - CI: allow macos to fail ([#&#8203;8194](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8194)) - CI: build phar on PHP 8.3 ([#&#8203;8195](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8195)) - CI: drop matrix for single-matrix-entry jobs of SCA and Deployment checks ([#&#8203;8193](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8193)) - CI: Ensure php-cs-fixer PHP compatibility /part ([#&#8203;8241](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8241)) - CI: Ensure `php-cs-fixer` PHP compatibility ([#&#8203;8235](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8235)) - CI: generate and execute code in `assert` ([#&#8203;8207](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8207)) - CI: update PHPStan to 1.12.2 ([#&#8203;8198](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8198)) - CI: update PHPStan to 1.12.3 ([#&#8203;8204](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8204)) - CI: use phpstan-symfony ([#&#8203;8287](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8287)) - depr: ConfigInterface::getPhpExecutable() and ConfigInterface::setPhpExecutable() ([#&#8203;8192](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8192)) - deps: add `composer-smaller-lock` ([#&#8203;8263](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8263)) - deps: Update PHPStan to 1.12.4 ([#&#8203;8215](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8215)) - deps: Update PHPStan to 1.12.5 ([#&#8203;8218](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8218)) - deps: update PHPStan to 1.12.7 ([#&#8203;8255](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8255)) - docs: fix inconsistency in config doc ([#&#8203;8269](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8269)) - docs: mention github action example instead of travis-ci ([#&#8203;8250](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8250)) - DX: Cover `php-cs-fixer` file with static analysis ([#&#8203;8229](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8229)) - DX: Make `TypeExpression` API more explicit about composite types ([#&#8203;8214](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8214)) - refactor: change `_AttributeItems` to `non-empty-list<_AttributeItem>` to allow using single attribute item ([#&#8203;8199](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8199)) - refactor: Rename newly introduced option ([#&#8203;8293](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8293)) - refactor: Runner - Enhance eventing system ([#&#8203;8276](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8276)) - refactor: Runner - make 4.0 TODOs easier to understand ([#&#8203;8196](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8196)) - refactor: use arrow functions in more places ([#&#8203;8294](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8294)) - test: `@PHP82Migration:risky` - add integration tests ([#&#8203;8278](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8278)) ### [`v3.64.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3640) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.63.2...v3.64.0) - feat: Symfony - adjust configuration for sets ([#&#8203;8188](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8188)) - feat: Symfony.trailing\_comma\_in\_multiline - adjust configuration ([#&#8203;8161](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8161)) - feat: Update PSR2, PSR12 and PER-CS2 with `single_space_around_construct` config ([#&#8203;8171](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8171)) - CI: Update PHPStan to 1.12.0 and fix the error that appeared ([#&#8203;8184](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8184)) ### [`v3.63.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3632) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.63.1...v3.63.2) - fix: `FullyQualifiedStrictTypesFixer` - reset cache even if there is no `use` ([#&#8203;8183](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8183)) ### [`v3.63.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3631) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.63.0...v3.63.1) - dummy release ### [`v3.63.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3630) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.62.0...v3.63.0) - feat: Add `array_destructuring` as option for `trailing_comma_in_multiline` ([#&#8203;8172](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8172)) - feat: remove braces even for single import ([#&#8203;8156](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8156)) - feat: TrailingCommaInMultilineFixer - dynamically evaluate config against PHP version ([#&#8203;8167](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8167)) - fix: Do not shorten FQN for class resolution if imported symbol is not a class ([#&#8203;7705](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7705)) - fix: Ensure PHP binary path is used as a single CLI argument in parallel worker process ([#&#8203;8180](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8180)) - fix: `PhpUnitAttributesFixer` - fix priorities with `PhpUnitDataProvider(.+)Fixer` ([#&#8203;8169](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8169)) - chore: add tags for data providers that will change PHPStan's baseline ([#&#8203;8178](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8178)) - chore: add `@return` tags for data providers already having PHPDoc ([#&#8203;8176](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8176)) - chore: add `@return` tags for data providers that do not have array in data ([#&#8203;8179](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8179)) - chore: remove duplicates from data providers ([#&#8203;8164](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8164)) - chore: remove duplicates from data providers that are copies in code ([#&#8203;8145](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8145)) - chore: remove `beStrictAboutTodoAnnotatedTests` from PHPUnit's config ([#&#8203;8160](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8160)) - CI: Update PHPStan to 1.11.10 ([#&#8203;8163](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8163)) - CI: Update PHPStan to 1.11.11 and fix error that changed ([#&#8203;8174](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8174)) - docs: fix indent on rule `date_time_create_from_format_call` ([#&#8203;8173](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8173)) ### [`v3.62.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3620) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.61.1...v3.62.0) - feat: set new\_with\_parentheses for anonymous\_class to false in PER-CS2.0 ([#&#8203;8140](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8140)) - chore: NewWithParenthesesFixer - create TODO to change the default configuration to match PER-CS2 ([#&#8203;8148](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8148)) ### [`v3.61.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3611) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.61.0...v3.61.1) - fix: `NoSuperfluousPhpdocTagsFixer` - fix "Undefined array key 0" error ([#&#8203;8150](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8150)) ### [`v3.61.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3610) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.60.0...v3.61.0) - feat: no\_superfluous\_phpdoc\_tags - also cover ?type ([#&#8203;8125](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8125)) - feat: support PHPUnit v9.1 naming for some asserts ([#&#8203;7997](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7997)) - fix: Do not mangle non-whitespace token in `PhpdocIndentFixer` ([#&#8203;8147](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8147)) - DX: add more typehints for `class-string` ([#&#8203;8139](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8139)) - DX: refactor `ProjectCodeTest::provideDataProviderMethodCases` ([#&#8203;8138](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8138)) ### [`v3.60.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3600) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.59.3...v3.60.0) - feat: Add sprintf in the list of compiler optimized functions ([#&#8203;8092](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8092)) - feat: `PhpUnitAttributesFixer` - add option to keep annotations ([#&#8203;8090](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8090)) - chore: cleanup tests that had `@requires PHP 7.4` ages ago ([#&#8203;8122](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8122)) - chore: cleanup `TokensAnalyzerTest` ([#&#8203;8123](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8123)) - chore: fix example issue reported by reportPossiblyNonexistentGeneralArrayOffset from PHPStan ([#&#8203;8089](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8089)) - chore: NoSuperfluousPhpdocTagsFixer - no need to call heavy toComparableNames method to add null type ([#&#8203;8132](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8132)) - chore: PHPStan 11 array rules ([#&#8203;8011](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8011)) - chore: PhpUnitSizeClassFixerTest - solve PHP 8.4 issues ([#&#8203;8105](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8105)) - chore: reduce PHPStan errors in PhpUnitAttributesFixer ([#&#8203;8091](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8091)) - chore: reuse test methods ([#&#8203;8119](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8119)) - CI: check autoload ([#&#8203;8121](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8121)) - CI: Update PHPStan to 1.11.8 ([#&#8203;8133](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8133)) - deps: upgrade dev-tools ([#&#8203;8102](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8102)) - DX: check for duplicated test data ([#&#8203;8131](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8131)) - DX: check for duplicated test methods ([#&#8203;8124](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8124)) - DX: check for duplicated test methods (as AutoReview test) ([#&#8203;8134](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8134)) - DX: do not exclude duplicates that are clearly mistakes ([#&#8203;8135](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8135)) - DX: Dump `offsetAccess.notFound` errors to baseline ([#&#8203;8107](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8107)) - fix: Better way of walking types in `TypeExpression` ([#&#8203;8076](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8076)) - fix: CI for PHP 8.4 ([#&#8203;8114](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8114)) - fix: update `TokensTest` to shrink PHPStan's baseline ([#&#8203;8112](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8112)) - fix: `no_useless_concat_operator` - do not break variable (2) ([#&#8203;7927](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7927)) - fix: `NullableTypeDeclarationFixer` - don't convert standalone `null` into nullable union type ([#&#8203;8098](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8098)) - fix: `NullableTypeDeclarationFixer` - don't convert standalone `NULL` into nullable union type ([#&#8203;8111](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8111)) - fix: `NullableTypeDeclarationFixer` - insert correct token ([#&#8203;8118](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8118)) - fix: `PhpUnitAttributesFixer` - handle multiple annotations of the same name ([#&#8203;8075](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8075)) ### [`v3.59.3`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3593) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.59.2...v3.59.3) - refactor: refactor to templated trait+interface ([#&#8203;7988](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7988)) ### [`v3.59.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3592) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.59.1...v3.59.2) - fix: "list" is reserved type ([#&#8203;8087](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8087)) - chore: add missing type in method prototype ([#&#8203;8088](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8088)) - CI: bump Ubuntu version ([#&#8203;8086](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8086)) - deps: bump infection to unblock PHPUnit 11, and few more as chore ([#&#8203;8083](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8083)) ### [`v3.59.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3591) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.59.0...v3.59.1) - fix: Bump React's JSON decoder buffer size ([#&#8203;8068](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8068)) - docs: options - handle enums in dicts ([#&#8203;8082](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8082)) ### [`v3.59.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3590) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.58.1...v3.59.0) - feat(Docker): Multi-arch build (support for `arm64`) ([#&#8203;8079](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8079)) - feat: `@PhpCsFixer` ruleset - normalise implicit backslashes in single quoted strings ([#&#8203;7965](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7965)) - feat: `SimpleToComplexStringVariableFixer` - support variable being an array ([#&#8203;8064](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8064)) - fix: Look up for PHPDoc's variable name by only chars allowed in the variables ([#&#8203;8062](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8062)) - fix: Update `PhpUnitTestCaseStaticMethodCallsFixer::STATIC_METHODS` ([#&#8203;8073](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8073)) - fix: `native_constant_invocation` - array constants with native constant names ([#&#8203;8008](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8008)) - chore: update PHPStan ([#&#8203;8060](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8060)) - CI: Update PHPStan to 1.11.4 ([#&#8203;8074](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8074)) - docs: don't expose list as config type for dicts ([#&#8203;8081](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8081)) - docs: Make wording in `final_class` docs less dismissive ([#&#8203;8065](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8065)) - docs: Update 1-bug\_report.yml ([#&#8203;8067](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8067)) - DX: Remove version from Docker Compose files ([#&#8203;8061](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8061)) ### [`v3.58.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3581) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.58.0...v3.58.1) - fix: `ConstantCaseFixer` - do not change class constant usages ([#&#8203;8055](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8055)) - fix: `PhpUnitTestClassRequiresCoversFixer` - do not add annotation when attribute with leading slash present ([#&#8203;8054](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8054)) ### [`v3.58.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3580) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.57.2...v3.58.0) - chore(doc): Use FQCN for parallel config in documentation ([#&#8203;8029](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8029)) - chore: fix typo in `PhpUnitTestClassRequiresCoversFixerTest` ([#&#8203;8047](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8047)) - chore: RandomApiMigrationFixer - do not modify configuration property ([#&#8203;8033](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8033)) - chore: Tokens::setCode - further improvements to cache ([#&#8203;8053](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8053)) - chore: update PHPStan ([#&#8203;8045](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8045)) - docs: Add missing imports in a cookbook about creating custom rules ([#&#8203;8031](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8031)) - docs: fix deprecated string interpolation style ([#&#8203;8036](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8036)) - docs: global\_namespace\_import - simplify allowed config types ([#&#8203;8023](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8023)) - feat(GroupImportFixer): Ability to configure which type of imports should be grouped ([#&#8203;8046](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8046)) - fix: clear `Tokens::$blockStartCache` and `Tokens::$blockEndCache` when calling `Tokens::setCode` ([#&#8203;8051](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8051)) - fix: correctly handle PHP closing tag with `simplified_null_return` ([#&#8203;8049](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8049)) - fix: `ConstantCaseFixer` - do not change namespace ([#&#8203;8004](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8004)) - fix: `PhpUnitAttributesFixer` - do not add attribute if already present ([#&#8203;8043](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8043)) - fix: `PhpUnitSizeClassFixer` - do not add annotation when there are attributes ([#&#8203;8044](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8044)) - fix: `PhpUnitTestClassRequiresCoversFixer` - attribute detection when class is `readonly` ([#&#8203;8042](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8042)) ### [`v3.57.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3572) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.57.1...v3.57.2) - docs: better ConfigurableFixer allowed types ([#&#8203;8024](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8024)) - docs: Improve Docker usage example ([#&#8203;8021](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8021)) - feat: Report used memory to 2 decimal digits only ([#&#8203;8017](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8017)) - fix: Support named args in `ParallelConfigFactory::detect()` ([#&#8203;8026](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8026)) - fix: `php_unit_test_class_requires_covers` Attribute detection when class is final ([#&#8203;8016](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8016)) ### [`v3.57.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3571) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.57.0...v3.57.1) - chore: update PHPDoc in `Preg::matchAll` ([#&#8203;8012](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8012)) - fix: Runner - handle no files while in parallel runner ([#&#8203;8015](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8015)) ### [`v3.57.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3570) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.56.2...v3.57.0) - feat: Ability to run Fixer with parallel runner 🎉 ([#&#8203;7777](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7777)) ### [`v3.56.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3562) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.56.1...v3.56.2) - chore: update PHPStan ([#&#8203;8010](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8010)) - DX: Fix Mess Detector violations ([#&#8203;8007](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8007)) - DX: Install PCov extension for local Docker ([#&#8203;8006](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8006)) ### [`v3.56.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3561) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.56.0...v3.56.1) - chore: improve PHPDoc typehints ([#&#8203;7994](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7994)) - CI: Allow any integer in PHPStan error for Token's constructor ([#&#8203;8000](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8000)) - fix: Better array shape in `PhpUnitDedicateAssertFixer` ([#&#8203;7999](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7999)) - fix: `ConstantCaseFixer` - do not touch typed constants ([#&#8203;7998](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7998)) ### [`v3.56.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3560) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.55.0...v3.56.0) - feat: `TrailingCommaInMultilineFixer` - handle trailing comma in language constructs ([#&#8203;7989](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7989)) - fix: `TrailingCommaInMultilineFixer` - language constructs should be covered by arguments, not parameters ([#&#8203;7990](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7990)) - chore: remove invalid comment ([#&#8203;7987](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7987)) - DX: Cache optimisation ([#&#8203;7985](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7985)) ### [`v3.55.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3550) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.54.0...v3.55.0) - feat: Introduce `OrderedAttributesFixer` ([#&#8203;7395](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7395)) - chore: few SCA fixes and dev-tools update ([#&#8203;7969](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7969)) - chore: fix phpdoc types ([#&#8203;7977](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7977)) - chore: narrow PHPDoc types ([#&#8203;7979](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7979)) - chore: Normalize implicit backslashes in single quoted strings internally ([#&#8203;7786](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7786)) - chore: phpdoc - rely on strict list/tuple/assoc instead of array ([#&#8203;7978](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7978)) - chore: PhpUnitDataProviderNameFixer - follow config creation pattern ([#&#8203;7980](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7980)) - chore: Preg - drop half-support for array-pattern ([#&#8203;7976](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7976)) - chore: re-use CodeHasher ([#&#8203;7984](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7984)) - chore: RuleSetsTest - assert that Fixer is configurable ([#&#8203;7961](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7961)) - chore: sugar syntax ([#&#8203;7986](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7986)) - chore: Tokens should be always a list ([#&#8203;7698](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7698)) - CI: Ad-hoc fix for MacOS jobs ([#&#8203;7970](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7970)) - CI: Fix calculating diff between branches in PRs ([#&#8203;7973](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7973)) - DX: allow to enforce cache mechanism by env var ([#&#8203;7983](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7983)) - DX: do not typehint fixed-length arrays as lists ([#&#8203;7974](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7974)) - DX: Prevent having deprecated fixers listed as successors of other deprecated fixers ([#&#8203;7967](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7967)) - DX: Resolve/Ignore PHPStan issues on level 6 + bump to level 7 with new baseline ([#&#8203;7971](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7971)) - DX: use `list` type in PHPDoc ([#&#8203;7975](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7975)) - fix: `PhpUnitAttributesFixer` - fix for `#[RequiresPhp]` exceeding its constructor parameters ([#&#8203;7966](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7966)) - test: don't count comment after class as another classy element ([#&#8203;7982](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7982)) ### [`v3.54.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3540) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.53.0...v3.54.0) - feat: introduce `PhpUnitAttributesFixer` ([#&#8203;7831](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7831)) - chore: Properly determine self-approval trigger commit ([#&#8203;7936](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7936)) - chore: Revert ref for self-approval Git checkout ([#&#8203;7944](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7944)) - CI: check if proper array key is declared ([#&#8203;7912](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7912)) - DX: cleanup `FullyQualifiedStrictTypesFixerTest` ([#&#8203;7954](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7954)) - DX: cleanup `PhpdocNoAccessFixerTest` ([#&#8203;7933](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7933)) - DX: cleanup `PhpUnitMethodCasingFixerTest` ([#&#8203;7948](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7948)) - DX: cleanup `PhpUnitStrictFixerTest` ([#&#8203;7938](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7938)) - DX: Improve internal dist config for Fixer ([#&#8203;7952](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7952)) - DX: Improve issue templates ([#&#8203;7942](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7942)) - DX: there is no namespace if there is no PHP code ([#&#8203;7953](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7953)) - DX: update .gitattributes ([#&#8203;7931](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7931)) - fix: Remove Infection during Docker release ([#&#8203;7937](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7937)) - fix: `FullyQualifiedStrictTypesFixer` - do not add imports before PHP opening tag ([#&#8203;7955](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7955)) - fix: `PhpUnitMethodCasingFixer` - do not double underscore ([#&#8203;7949](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7949)) - fix: `PhpUnitTestClassRequiresCoversFixer` - do not add annotation when there are attributes ([#&#8203;7880](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7880)) - test: Ignore PHP version related mutations ([#&#8203;7935](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7935)) ### [`v3.53.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3530) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.52.1...v3.53.0) - chore: Use `list` over `array` in more places ([#&#8203;7905](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7905)) - CI: allow for self-approvals for maintainers ([#&#8203;7921](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7921)) - CI: Improve Infection setup ([#&#8203;7913](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7913)) - CI: no need to trigger enable auto-merge when self-approve ([#&#8203;7929](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7929)) - DX: reduce `array_filter` function usages ([#&#8203;7923](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7923)) - DX: remove duplicated character from `trim` call ([#&#8203;7930](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7930)) - DX: update actions producing warnings ([#&#8203;7925](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7925)) - DX: update actions producing warnings ([#&#8203;7928](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7928)) - DX: update `phpstan/phpstan-strict-rules` ([#&#8203;7924](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7924)) - feat: Add trailing comma in multiline to PER-CS 2.0 ([#&#8203;7916](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7916)) - feat: Introduce `AttributeAnalysis` ([#&#8203;7909](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7909)) - feat: `@PHP84Migration` introduction ([#&#8203;7774](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7774)) - fix: Constant invocation detected in typed constants ([#&#8203;7892](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7892)) - fix: `PhpdocArrayTypeFixer` - JIT stack limit exhausted ([#&#8203;7895](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7895)) - test: Introduce Infection for mutation tests ([#&#8203;7874](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7874)) ### [`v3.52.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3521) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.52.0...v3.52.1) - fix: StatementIndentationFixer - do not crash on ternary operator in class property ([#&#8203;7899](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7899)) - fix: `PhpCsFixer\Tokenizer\Tokens::setSize` return type ([#&#8203;7900](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7900)) ### [`v3.52.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3520) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.51.0...v3.52.0) - chore: fix PHP 8.4 deprecations ([#&#8203;7894](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7894)) - chore: fix PHPStan 1.10.60 issues ([#&#8203;7873](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7873)) - chore: list over array in more places ([#&#8203;7876](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7876)) - chore: replace template with variable in Preg class ([#&#8203;7882](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7882)) - chore: update PHPStan ([#&#8203;7871](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7871)) - depr: `nullable_type_declaration_for_default_null_value` - deprecate option that is against `@PHP84Migration` ([#&#8203;7872](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7872)) - docs: Fix typo ([#&#8203;7889](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7889)) - feat: Add support for callable template in PHPDoc parser ([#&#8203;7084](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7084)) - feat: Add `array_indentation` to `PER-CS2.0` ruleset ([#&#8203;7881](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7881)) - feat: `@Symfony:risky` - add `no_unreachable_default_argument_value` ([#&#8203;7863](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7863)) - feat: `PhpCsFixer` ruleset - enable `nullable_type_declaration_for_default_null_value` ([#&#8203;7870](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7870)) - fix: Constant invocation detected in DNF types ([#&#8203;7869](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7869)) - fix: Correctly indent multiline constants and properties ([#&#8203;7875](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7875)) - fix: `no_useless_concat_operator` - do not break variable ([#&#8203;7827](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7827)) - fix: `TokensAnalyzer` - handle unary operator in arrow functions ([#&#8203;7862](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7862)) - fix: `TypeExpression` - fix "JIT stack limit exhausted" error ([#&#8203;7843](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7843)) ### [`v3.51.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3510) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.50.0...v3.51.0) - chore: add missing tests for non-documentation classes ([#&#8203;7848](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7848)) - chore: do not perform type analysis in tests ([#&#8203;7852](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7852)) - chore: list over array in more places ([#&#8203;7857](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7857)) - chore: tests documentation classes ([#&#8203;7855](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7855)) - feat: `@Symfony` - add nullable\_type\_declaration ([#&#8203;7856](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7856)) - test: fix wrong type in param annotation ([#&#8203;7858](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7858)) ### [`v3.50.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3500) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.49.0...v3.50.0) - chore: add missing types ([#&#8203;7842](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7842)) - chore: BlocksAnalyzer - raise exception on invalid index ([#&#8203;7819](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7819)) - chore: DataProviderAnalysis - expect list over array ([#&#8203;7800](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7800)) - chore: do not use `@large` on method level ([#&#8203;7832](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7832)) - chore: do not use `@medium` on method level ([#&#8203;7833](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7833)) - chore: Fix typos ([#&#8203;7835](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7835)) - chore: rename variables ([#&#8203;7847](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7847)) - chore: some improvements around array typehints ([#&#8203;7799](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7799)) - CI: fix PHP 8.4 job ([#&#8203;7829](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7829)) - DX: Include `symfony/var-dumper` in dev tools ([#&#8203;7795](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7795)) - feat: Ability to remove unused imports from multi-use statements ([#&#8203;7815](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7815)) - feat: allow PHPUnit 11 ([#&#8203;7824](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7824)) - feat: Allow shortening symbols from multi-use statements (only classes for now) ([#&#8203;7816](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7816)) - feat: introduce `PhpdocArrayTypeFixer` ([#&#8203;7812](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7812)) - feat: PhpUnitTestCaseStaticMethodCallsFixer - cover PHPUnit v11 methods ([#&#8203;7822](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7822)) - feat: Support for multi-use statements in `NamespaceUsesAnalyzer` ([#&#8203;7814](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7814)) - feat: `MbStrFunctionsFixer` - add support for `mb_trim`, `mb_ltrim` and `mb_rtrim` functions ([#&#8203;7840](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7840)) - feat: `NoEmptyPhpdocFixer` - do not leave empty line after removing PHPDoc ([#&#8203;7820](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7820)) - feat: `no_superfluous_phpdoc_tags` - introduce `allow_future_params` option ([#&#8203;7743](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7743)) - fix: do not use wrongly named arguments in data providers ([#&#8203;7823](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7823)) - fix: Ensure PCNTL extension is always installed in Docker ([#&#8203;7782](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7782)) - fix: PhpdocListTypeFixer - support key types containing `<…>` ([#&#8203;7817](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7817)) - fix: Proper build target for local Docker Compose ([#&#8203;7834](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7834)) - fix: union PHPDoc support in `fully_qualified_strict_types` fixer ([#&#8203;7719](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7719)) - fix: `ExecutorWithoutErrorHandler` - remove invalid PHP 7.4 type ([#&#8203;7845](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7845)) - fix: `fully_qualified_strict_types` must honour template/local type identifiers ([#&#8203;7724](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7724)) - fix: `MethodArgumentSpaceFixer` - do not break heredoc/nowdoc ([#&#8203;7828](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7828)) - fix: `NumericLiteralSeparatorFixer` - do not change `float` to `int` when there is nothing after the dot ([#&#8203;7805](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7805)) - fix: `PhpUnitStrictFixer` - do not crash on property having the name of method to fix ([#&#8203;7804](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7804)) - fix: `SingleSpaceAroundConstructFixer` - correctly recognise multiple constants ([#&#8203;7700](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7700)) - fix: `TypeExpression` - handle array shape key with dash ([#&#8203;7841](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7841)) ### [`v3.49.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3490) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.48.0...v3.49.0) - chore(checkbashisms): update to 2.23.7 ([#&#8203;7780](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7780)) - chore: add missing key types in PHPDoc types ([#&#8203;7779](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7779)) - chore: Exclude `topic/core` issues/PRs from Stale Bot ([#&#8203;7788](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7788)) - chore: `DescribeCommand` - better handling of deprecations ([#&#8203;7778](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7778)) - docs: docker - use gitlab reporter in GitLab integration example ([#&#8203;7764](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7764)) - docs: docker in CI - don't suggest command that overrides path from config file ([#&#8203;7763](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7763)) - DX: check deprecations exactly ([#&#8203;7742](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7742)) - feat: Add `ordered_types` to `@Symfony` ([#&#8203;7356](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7356)) - feat: introduce `PhpdocListTypeFixer` ([#&#8203;7796](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7796)) - feat: introduce `string_implicit_backslashes` as `escape_implicit_backslashes` replacement ([#&#8203;7669](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7669)) - feat: update `Symfony.nullable_type_declaration_for_default_null_value` config ([#&#8203;7773](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7773)) - feat: `@PhpCsFixer` ruleset - enable `php_unit_data_provider_static` ([#&#8203;7685](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7685)) - fix: Allow using cache when running in Docker distribution ([#&#8203;7769](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7769)) - fix: ClassDefinitionFixer for anonymous class with phpdoc/attribute on separate line ([#&#8203;7546](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7546)) - fix: `ClassKeywordFixer` must run before `FullyQualifiedStrictTypesFixer` ([#&#8203;7767](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7767)) - fix: `function_to_constant` `get_class()` replacement ([#&#8203;7770](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7770)) - fix: `LowercaseStaticReferenceFixer` - do not change typed constants ([#&#8203;7775](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7775)) - fix: `PhpdocTypesFixer` - handle more complex types ([#&#8203;7791](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7791)) - fix: `TypeExpression` - do not break type using `walkTypes` method ([#&#8203;7785](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7785)) ### [`v3.48.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3480) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.47.1...v3.48.0) - chore: `FullyQualifiedStrictTypesFixer` must run before `OrderedInterfacesFixer` ([#&#8203;7762](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7762)) - docs: Add PHP-CS-Fixer integration in a GitHub Action step ([#&#8203;7757](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7757)) - feat: `PhpdocTypesOrderFixer` Support DNF types ([#&#8203;7732](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7732)) - fix: Support shebang in fixers operating on PHP opening tag ([#&#8203;7687](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7687)) - fix: work correctly for a switch/case with ternary operator ([#&#8203;7756](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7756)) - fix: `NoUselessConcatOperatorFixer` - do not remove new line ([#&#8203;7759](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7759)) ### [`v3.47.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3471) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.47.0...v3.47.1) - fix: Do not override short name with relative reference ([#&#8203;7752](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7752)) - fix: make `BinaryOperatorSpacesFixer` work as pre-v3.47 ([#&#8203;7751](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7751)) - fix: Proper Docker image name suffix ([#&#8203;7739](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7739)) - fix: `FullyQualifiedStrictTypesFixer` - do not change case of the symbol when there's name collision between imported class and imported function ([#&#8203;7750](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7750)) - fix: `FullyQualifiedStrictTypesFixer` - do not modify statements with property fetch and `::` ([#&#8203;7749](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7749)) ### [`v3.47.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3470) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.46.0...v3.47.0) - chore: better identify EXPERIMENTAL rules ([#&#8203;7729](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7729)) - chore: fix issue detected by unlocked PHPStan + upgrade dev-tools ([#&#8203;7678](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7678)) - chore: handle extract() ([#&#8203;7684](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7684)) - chore: Mention contributors in app info ([#&#8203;7668](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7668)) - chore: no need to mark private methods as internal ([#&#8203;7715](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7715)) - chore: ProjectCodeTests - dry for function usage extractions ([#&#8203;7690](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7690)) - chore: reduce PHPStan baseline ([#&#8203;7644](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7644)) - chore: use numeric literal separator for PHP version IDs ([#&#8203;7712](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7712)) - chore: use numeric\_literal\_separator for project ([#&#8203;7713](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7713)) - chore: Utils::sortElements - better typing ([#&#8203;7646](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7646)) - CI: Allow running Stale Bot on demand ([#&#8203;7711](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7711)) - CI: Fix PHP 8.4 ([#&#8203;7702](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7702)) - CI: Give write permissions to Stale Bot ([#&#8203;7716](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7716)) - CI: Use `actions/stale` v9 ([#&#8203;7710](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7710)) - docs: Add information about allowing maintainers to update PRs ([#&#8203;7683](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7683)) - docs: CONTRIBUTING.md - update Opening a PR ([#&#8203;7691](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7691)) - docs: Display/include tool info/version by default in commands and reports ([#&#8203;7733](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7733)) - DX: fix deprecation tests warnings for PHP 7.4 ([#&#8203;7725](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7725)) - DX: update `host.docker.internal` in Compose override template ([#&#8203;7661](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7661)) - DX: `NumericLiteralSeparatorFixer` - change default strategy to `use_separator` ([#&#8203;7730](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7730)) - feat: Add support for official Docker images of Fixer ([#&#8203;7555](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7555)) - feat: Add `spacing` option to `PhpdocAlignFixer` ([#&#8203;6505](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6505)) - feat: Add `union_types` option to `phpdoc_to_param_type`, `phpdoc_to_property_type`, and `phpdoc_to_return_type` fixers ([#&#8203;7672](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7672)) - feat: Introduce `heredoc_closing_marker` fixer ([#&#8203;7660](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7660)) - feat: Introduce `multiline_string_to_heredoc` fixer ([#&#8203;7665](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7665)) - feat: Introduce `NumericLiteralSeparatorFixer` ([#&#8203;6761](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6761)) - feat: no\_superfluous\_phpdoc\_tags - support for arrow function ([#&#8203;7666](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7666)) - feat: Simplify closing marker when possible in `heredoc_closing_marker` fixer ([#&#8203;7676](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7676)) - feat: Support typed properties and attributes in `fully_qualified_strict_types` ([#&#8203;7659](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7659)) - feat: `@PhpCsFixer` ruleset - enable no\_whitespace\_before\_comma\_in\_array.after\_heredoc ([#&#8203;7670](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7670)) - fix: Improve progress bar visual layer ([#&#8203;7708](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7708)) - fix: indentation of control structure body without braces ([#&#8203;7663](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7663)) - fix: make sure all PHP extensions required by PHPUnit are installed ([#&#8203;7727](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7727)) - fix: PhpdocToReturnTypeFixerTest - support for arrow functions ([#&#8203;7645](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7645)) - fix: Several improvements for `fully_qualified_strict_types` (respect declared symbols, relative imports, leading backslash in global namespace) ([#&#8203;7679](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7679)) - fix: SimplifiedNullReturnFixer - support array return typehint ([#&#8203;7728](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7728)) - fix: Support numeric values without leading zero in `numeric_literal_separator` ([#&#8203;7735](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7735)) - fix: `BinaryOperatorSpacesFixer` - align correctly when multiple shifts occurs in single line ([#&#8203;7593](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7593)) - fix: `ClassReferenceNameCasingFixer` capitalizes the property name after the nullsafe operator ([#&#8203;7696](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7696)) - fix: `fully_qualified_strict_types` with `leading_backslash_in_global_namespace` enabled - handle reserved types in phpDoc ([#&#8203;7648](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7648)) - fix: `NoSpaceAroundDoubleColonFixer` must run before `MethodChainingIndentationFixer` ([#&#8203;7723](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7723)) - fix: `no_superfluous_phpdoc_tags` must honour multiline docs ([#&#8203;7697](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7697)) - fix: `numeric_literal_separator` - Handle zero-leading floats properly ([#&#8203;7737](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7737)) - refactor: increase performance by \~7% thanks to `Tokens::block*Cache` hit increased by \~12% ([#&#8203;6176](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6176)) - refactor: Tokens - fast check for non-block in 'detectBlockType', evaluate definitions only once in 'getBlockEdgeDefinitions' ([#&#8203;7655](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7655)) - refactor: `Tokens::clearEmptyTokens` - play defensive with cache clearing ([#&#8203;7658](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7658)) - test: ensure we do not forget to test any short\_open\_tag test ([#&#8203;7638](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7638)) ### [`v3.46.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3460) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.45.0...v3.46.0) - chore: fix internal typehints in Tokens ([#&#8203;7656](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7656)) - chore: reduce PHPStan baseline ([#&#8203;7643](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7643)) - docs: Show class with unit tests and BC promise info ([#&#8203;7667](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7667)) - feat: change default ruleset to `@PER-CS` (only behind PHP\_CS\_FIXER\_FUTURE\_MODE=1) ([#&#8203;7650](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7650)) - feat: Support new/instanceof/use trait in `fully_qualified_strict_types` ([#&#8203;7653](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7653)) - fix: FQCN parse phpdoc using full grammar regex ([#&#8203;7649](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7649)) - fix: Handle FQCN properly with `leading_backslash_in_global_namespace` option enabled ([#&#8203;7654](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7654)) - fix: PhpdocToParamTypeFixerTest - support for arrow functions ([#&#8203;7647](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7647)) - fix: PHP\_CS\_FIXER\_FUTURE\_MODE - proper boolean validation ([#&#8203;7651](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7651)) ### [`v3.45.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3450) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.44.0...v3.45.0) - feat: Enable symbol importing in `@PhpCsFixer` ruleset ([#&#8203;7629](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7629)) - fix: NoUnneededBracesFixer - improve handling of global namespace ([#&#8203;7639](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7639)) - test: run tests with "short\_open\_tag" enabled ([#&#8203;7637](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7637)) ### [`v3.44.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3440) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.43.1...v3.44.0) - feat: Introduce percentage bar as new default progress output ([#&#8203;7603](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7603)) ### [`v3.43.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3431) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.43.0...v3.43.1) - fix: Import only unique symbols' short names ([#&#8203;7635](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7635)) ### [`v3.43.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3430) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.42.0...v3.43.0) - chore: change base of `@Symfony` set to `@PER-CS2.0` ([#&#8203;7627](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7627)) - chore: PHPUnit - allow for v10 ([#&#8203;7606](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7606)) - chore: Preg - rework catching the error ([#&#8203;7616](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7616)) - chore: Revert unneeded peer-dep-pin and re-gen lock file ([#&#8203;7618](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7618)) - docs: drop extra note about 8.0.0 bug in README.md ([#&#8203;7614](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7614)) - feat: add cast\_spaces into `@PER-CS2.0` ([#&#8203;7625](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7625)) - feat: Configurable phpDoc tags for FQCN processing ([#&#8203;7628](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7628)) - feat: StatementIndentationFixer - introduce stick\_comment\_to\_next\_continuous\_control\_statement config ([#&#8203;7624](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7624)) - feat: UnaryOperatorSpacesFixer - introduce only\_dec\_inc config ([#&#8203;7626](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7626)) - fix: FullyQualifiedStrictTypesFixer - better support annotations in inline {} ([#&#8203;7633](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7633)) - fix: Improve how FQCN is handled in phpDoc ([#&#8203;7622](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7622)) - fix: phpdoc\_align - fix multiline tag alignment issue ([#&#8203;7630](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7630)) ### [`v3.42.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3420) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.41.1...v3.42.0) - chore: aim to not rely on internal array pointer but use array\_key\_first ([#&#8203;7613](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7613)) - chore: deprecate Token::isKeyCaseSensitive ([#&#8203;7599](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7599)) - chore: deprecate Token::isKeyCaseSensitive, 2nd part ([#&#8203;7601](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7601)) - chore: do not check PHP\_VERSION\_ID ([#&#8203;7602](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7602)) - chore: FileFilterIteratorTest - more accurate type in docs ([#&#8203;7542](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7542)) - chore: minor code cleanup ([#&#8203;7607](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7607)) - chore: more types ([#&#8203;7598](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7598)) - chore: PHPDoc key-value spacing ([#&#8203;7592](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7592)) - chore: PHPUnit - run defects first ([#&#8203;7570](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7570)) - chore: ProjectCodeTest - DRY on Tokens creation ([#&#8203;7574](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7574)) - chore: ProjectCodeTest - prepare for symfony/console v7 ([#&#8203;7605](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7605)) - chore: ProjectCodeTest::provide\*ClassCases to return iterable with key for better tests execution log ([#&#8203;7572](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7572)) - chore: ProjectCodeTest::testDataProvidersDeclaredReturnType - use better DataProvider to simplify test logic ([#&#8203;7573](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7573)) - chore: TokensAnalyzer - string-enum for better typehinting ([#&#8203;7571](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7571)) - chore: unify tests not agnostic of PHP version ([#&#8203;7581](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7581)) - chore: use ::class more ([#&#8203;7545](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7545)) - CI: Introduce `composer-unused` ([#&#8203;7536](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7536)) - DX: add types to anonymous functions ([#&#8203;7561](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7561)) - DX: Allow running smoke tests within Docker runtime ([#&#8203;7608](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7608)) - DX: check fixer's options for wording ([#&#8203;7543](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7543)) - DX: cleanup deprecation message ([#&#8203;7576](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7576)) - DX: do not allow overriding constructor of `PHPUnit\Framework\TestCase` ([#&#8203;7563](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7563)) - DX: do not import ExpectDeprecationTrait in UtilsTest ([#&#8203;7562](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7562)) - DX: Enforce consistent naming in tests ([#&#8203;7556](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7556)) - DX: fix checking test class extends `PhpCsFixer\Tests\TestCase` ([#&#8203;7567](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7567)) - DX: make sure that exceptions in `AbstractFixerTestCase::testProperMethodNaming` are not already fixed ([#&#8203;7588](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7588)) - DX: remove recursion from AbstractIntegrationTestCase::testIntegration ([#&#8203;7577](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7577)) - DX: remove `PhpUnitNamespacedFixerTest::testClassIsFixed` ([#&#8203;7564](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7564)) - DX: remove `symfony/phpunit-bridge` ([#&#8203;7578](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7578)) - DX: replace fixture classes with anonymous ones ([#&#8203;7533](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7533)) - DX: Unify Docker mount points and paths ([#&#8203;7549](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7549)) - DX: unify fixer's test method names - quick wins ([#&#8203;7584](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7584)) - DX: unify tests for casing fixers ([#&#8203;7558](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7558)) - DX: use anonymous function over concrete classes ([#&#8203;7553](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7553)) - feat(EXPERIMENTAL): ClassKeywordFixer ([#&#8203;2918](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/2918)) - feat(EXPERIMENTAL): ClassKeywordFixer, part 2 ([#&#8203;7550](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7550)) - feat(PhpdocToCommentFixer): Add option to handle return as valid docblock usage ([#&#8203;7401](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7401)) ([#&#8203;7402](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7402)) - feat: Ability to import FQCNs found during analysis ([#&#8203;7597](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7597)) - feat: add phpDoc support for `fully_qualified_strict_types` fixer ([#&#8203;5620](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/5620)) - feat: Handle deprecated rule sets similarly to deprecated fixers ([#&#8203;7288](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7288)) - feat: PhpUnitTestCaseStaticMethodCallsFixer - cover PHPUnit v10 methods ([#&#8203;7604](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7604)) - feat: Support more FQCNs cases in `fully_qualified_strict_types` ([#&#8203;7459](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7459)) - fix: AbstractFixerTestCase - fix checking for correct casing ([#&#8203;7540](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7540)) - fix: Better OS detection in integration tests ([#&#8203;7547](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7547)) - fix: NativeTypeDeclarationCasingFixer - handle static property without type ([#&#8203;7589](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7589)) - test: AutoReview - unify data provider returns ([#&#8203;7544](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7544)) - test: check to have DataProviders code agnostic of PHP version ([#&#8203;7575](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7575)) ### [`v3.41.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3411) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.41.0...v3.41.1) - DX: Change `@testWith` to `@dataProvider` ([#&#8203;7535](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7535)) - DX: Introduce Markdownlint ([#&#8203;7534](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7534)) - fix: NativeTypeDeclarationCasingFixer - do not crash on `var` keyword ([#&#8203;7538](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7538)) ### [`v3.41.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3410) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.40.2...v3.41.0) - chore: Move `mb_str_functions` PHP 8.3 cases to separate test ([#&#8203;7505](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7505)) - chore: Symfony v7 is now stable ([#&#8203;7469](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7469)) - CI: drop PHP 8.3 hacks ([#&#8203;7519](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7519)) - docs: Improve docs for `no_spaces_after_function_name` ([#&#8203;7520](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7520)) - DX: Ability to run Sphinx linter locally ([#&#8203;7481](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7481)) - DX: AbstractFixerTest - use anonymous classes ([#&#8203;7527](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7527)) - DX: Add progress output for `cs:check` script ([#&#8203;7514](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7514)) - DX: align doubles naming ([#&#8203;7525](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7525)) - DX: remove AbstractFixerTestCase::getTestFile() ([#&#8203;7495](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7495)) - DX: remove jangregor/phpstan-prophecy ([#&#8203;7524](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7524)) - DX: remove Prophecy ([#&#8203;7509](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7509)) - DX: replace Prophecy with anonymous classes in CacheTest ([#&#8203;7503](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7503)) - DX: replace Prophecy with anonymous classes in ProcessLintingResultTest ([#&#8203;7501](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7501)) - DX: Utilise auto-discovery for PHPStan formatter ([#&#8203;7490](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7490)) - feat: Support `mb_str_pad` function in `mb_str_functions` rule ([#&#8203;7499](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7499)) - fix: BinaryOperatorSpacesFixer - do not add whitespace inside short function ([#&#8203;7523](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7523)) - fix: Downgrade PDepend to version not supporting Symfony 7 ([#&#8203;7513](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7513)) - fix: GlobalNamespaceImportFixer - key in PHPDoc's array shape matching class name ([#&#8203;7522](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7522)) - fix: SpacesInsideParenthesesFixer - handle class instantiation parentheses ([#&#8203;7531](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7531)) - Update PHPstan to 1.10.48 ([#&#8203;7532](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7532)) ### [`v3.40.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3402) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.40.1...v3.40.2) - docs: fix link to source classes ([#&#8203;7493](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7493)) ### [`v3.40.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3401) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.40.0...v3.40.1) - chore: Delete stray file x ([#&#8203;7473](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7473)) - chore: Fix editorconfig ([#&#8203;7478](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7478)) - chore: Fix typos ([#&#8203;7474](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7474)) - chore: Fix YAML line length ([#&#8203;7476](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7476)) - chore: Indent JSON files with 4 spaces ([#&#8203;7480](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7480)) - chore: Make YAML workflow git-based ([#&#8203;7477](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7477)) - chore: Use stable XDebug ([#&#8203;7489](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7489)) - CI: Lint docs ([#&#8203;7479](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7479)) - CI: Use PHPStan's native Github error formatter ([#&#8203;7487](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7487)) - DX: fix PHPStan error ([#&#8203;7488](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7488)) - DX: PsrAutoloadingFixerTest - do not build mock in data provider ([#&#8203;7491](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7491)) - DX: PsrAutoloadingFixerTest - merge all data providers into one ([#&#8203;7492](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7492)) - DX: Update PHPStan to 1.10.46 ([#&#8203;7486](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7486)) - fix: `NoSpacesAfterFunctionNameFixer` - do not remove space if the opening parenthesis part of an expression ([#&#8203;7430](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7430)) ### [`v3.40.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3400) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.39.1...v3.40.0) - chore: officially support PHP 8.3 ([#&#8203;7466](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7466)) - chore: update deps ([#&#8203;7471](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7471)) - CI: add --no-update while dropping non-compat `facile-it/paraunit` ([#&#8203;7470](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7470)) - CI: automate --ignore-platform-req=PHP ([#&#8203;7467](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7467)) - CI: bump actions/github-script to v7 ([#&#8203;7468](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7468)) - CI: move humbug/box out of dev-tools/composer.json ([#&#8203;7472](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7472)) ### [`v3.39.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3391) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.39.0...v3.39.1) - DX: introduce SwitchAnalyzer ([#&#8203;7456](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7456)) - fix: NoExtraBlankLinesFixer - do not remove blank line after `? : throw` ([#&#8203;7457](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7457)) - fix: OrderedInterfacesFixer - do not comment out interface ([#&#8203;7464](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7464)) - test: Improve `ExplicitIndirectVariableFixerTest` ([#&#8203;7451](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7451)) ### [`v3.39.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3390) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.38.2...v3.39.0) - chore: Add support for Symfony 7 ([#&#8203;7453](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7453)) - chore: IntegrationTest - move support of php< requirement to main Integration classes ([#&#8203;7448](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7448)) - CI: drop Symfony ^7 incompat exceptions of php-coveralls and cli-executor ([#&#8203;7455](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7455)) - CI: early compatibility checks with Symfony 7 ([#&#8203;7431](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7431)) - docs: drop list.rst and code behind it ([#&#8203;7436](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7436)) - docs: remove Gitter mentions ([#&#8203;7441](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7441)) - DX: Ability to run Fixer on PHP8.3 for development ([#&#8203;7449](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7449)) - DX: describe command - for rules, list also sets that are including them ([#&#8203;7419](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7419)) - DX: Docker clean up ([#&#8203;7450](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7450)) - DX: more usage of spaceship operator ([#&#8203;7438](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7438)) - DX: Put `Preg`'s last error message in exception message ([#&#8203;7443](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7443)) - feat: Introduce `@PHP83Migration` ruleset and PHP 8.3 integration test ([#&#8203;7439](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7439)) - test: Improve `AbstractIntegrationTestCase` description ([#&#8203;7452](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7452)) ### [`v3.38.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3382) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.38.1...v3.38.2) - docs: fix 'Could not lex literal\_block as "php". Highlighting skipped.' ([#&#8203;7433](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7433)) - docs: small unification between FixerDocumentGenerator and ListDocumentGenerator ([#&#8203;7435](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7435)) - docs: unify ../ <> ./../ ([#&#8203;7434](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7434)) ### [`v3.38.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3381) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.38.0...v3.38.1) - chore: ListSetsCommand::execute - add missing return type ([#&#8203;7432](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7432)) - chore: PHPStan - add counter to dataProvider exception, so we do not increase the tech debt on it ([#&#8203;7425](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7425)) - CI: Use `actions/checkout` v4 ([#&#8203;7423](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7423)) - fix: ClassAttributesSeparationFixer - handle Disjunctive Normal Form types parentheses ([#&#8203;7428](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7428)) - fix: Remove all variable names in `@var` callable signature ([#&#8203;7429](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7429)) - fix: Satisfy `composer normalize` ([#&#8203;7424](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7424)) ### [`v3.38.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3380) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.37.1...v3.38.0) - chore: upgrade phpstan ([#&#8203;7421](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7421)) - CI: add curl and mbstring to build php ([#&#8203;7409](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7409)) - CI: cache dev-tools/bin ([#&#8203;7416](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7416)) - CI: Composer - move prefer-stable to file config ([#&#8203;7406](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7406)) - CI: conditionally install flex ([#&#8203;7412](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7412)) - CI: dev-tools/build.sh - no need to repeat 'prefer-stable', but let's use '--no-scripts' ([#&#8203;7408](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7408)) - CI: Do not run post-autoload-dump on Composer install ([#&#8203;7403](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7403)) - CI: general restructure ([#&#8203;7407](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7407)) - CI: GitHub Actions - use actions/cache for Composer in composite action ([#&#8203;7415](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7415)) - CI: Improve QA process - supplement ([#&#8203;7411](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7411)) - CI: prevent Infection plugins during build time, as we do not use it ([#&#8203;7422](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7422)) - CI: simplify setup-php config ([#&#8203;7404](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7404)) - DX: Do not mark as stale issues/PRs with milestone assigned ([#&#8203;7398](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7398)) - DX: Improve QA process ([#&#8203;7366](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7366)) - feat: phpDoc to property/return/param Fixer - allow fixing mixed on PHP >= 8 ([#&#8203;6356](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6356)) - feat: phpDoc to property/return/param Fixer - allow fixing union types on PHP >= 8 ([#&#8203;6359](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6359)) - feat: Support for array destructuring in `array_indentation` ([#&#8203;7405](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7405)) - feat: `@Symfony` - keep Annotation,NamedArgumentConstructor,Target annotations as single group ([#&#8203;7399](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7399)) - fix(SelfAccessorFixer): do not touch references inside lambda and/or arrow function ([#&#8203;7349](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7349)) - fix: long\_to\_shorthand\_operator - mark as risky fixer ([#&#8203;7418](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7418)) - fix: OrderedImportsFixer - handle non-grouped list of const/function imports ([#&#8203;7397](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7397)) ### [`v3.37.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3371) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.37.0...v3.37.1) - docs: config file - provide better examples ([#&#8203;7396](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7396)) - docs: config file - provide better link to Finder docs ([#&#8203;6992](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6992)) ### [`v3.37.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3370) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.36.0...v3.37.0) - feat: add parallel cache support ([#&#8203;7131](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7131)) ### [`v3.36.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3360) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.35.1...v3.36.0) - chore: disable `infection-installer` plugin, as we do not use `infection/*` yet ([#&#8203;7391](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7391)) - chore: Run dev-tools on PHP 8.2 ([#&#8203;7389](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7389)) - CI: Run Symfony 6 compat check on PHP 8.1 ([#&#8203;7383](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7383)) - CI: use fast-linter when calculating code coverage ([#&#8203;7390](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7390)) - docs: extend example for nullable\_type\_declaration ([#&#8203;7381](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7381)) - DX: FixerFactoryTest - make assertion failing msg more descriptive ([#&#8203;7387](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7387)) - feat: PhpdocSummaryFixer - support lists in description ([#&#8203;7385](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7385)) - feat: PSR12 - configure unary\_operator\_spaces ([#&#8203;7388](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7388)) - feat: StatementIndentationFixer - support comment for continuous control statement ([#&#8203;7384](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7384)) ### [`v3.35.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3351) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.35.0...v3.35.1) - fix: Mark `PhpdocReadonlyClassCommentToKeywordFixer` as risky ([#&#8203;7372](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7372)) ### [`v3.35.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3350) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.34.1...v3.35.0) - chore: Autoreview: test all formats are listed in `usage.rst` ([#&#8203;7357](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7357)) - chore: no need for `phpunitgoodpractices/traits` anymore ([#&#8203;7362](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7362)) - chore: Rename `indexes` to `indices` ([#&#8203;7368](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7368)) - chore: stop using `phpunitgoodpractices/traits` ([#&#8203;7363](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7363)) - chore: typo ([#&#8203;7367](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7367)) - docs: Sort options in documentation ([#&#8203;7345](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7345)) - feat(PhpdocReadonlyClassCommentToKeywordFixer): Introduction ([#&#8203;7353](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7353)) - feat: Ability to keep/enforce leading `\` when in global namespace ([#&#8203;7186](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7186)) - feat: Update `@PER-CS2.0` to match short closure space ([#&#8203;6970](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6970)) - feat: use `ordered_types` in `@PhpCsFixer` ([#&#8203;7361](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7361)) - fix(SingleLineThrowFixer): fixer goes out of range on close tag ([#&#8203;7369](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7369)) ### [`v3.34.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3341) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.34.0...v3.34.1) - deps: revert "prevent using PHPCSFixer along with unfinalize package ([#&#8203;7343](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7343))" ([#&#8203;7348](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7348)) ### [`v3.34.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3340) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.33.1...v3.34.0) - feat: Introduce `check` command (alias for `fix --dry-run`) ([#&#8203;7322](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7322)) ### [`v3.33.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/releases/tag/v3.33.1): The Old Guard [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.33.0...v3.33.1) #### What's Changed - deps: revert "prevent using PHPCSFixer along with unfinalize package ([#&#8203;7343](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7343))" by [@&#8203;innocenzi](https://github.com/innocenzi) in [#&#8203;7348](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/pull/7348) #### New Contributors - [@&#8203;innocenzi](https://github.com/innocenzi) made their first contribution in [#&#8203;7348](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/pull/7348) **Full Changelog**: <https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.33.0...v3.33.1> ### [`v3.33.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3330) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.32.1...v3.33.0) - feat: Introduce `native_type_declaration_casing` fixer ([#&#8203;7330](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7330)) ### [`v3.32.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/releases/tag/v3.32.1): Deprecation train [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.32.0...v3.32.1) #### What's Changed - deps: revert "prevent using PHPCSFixer along with unfinalize package ([#&#8203;7343](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7343))" by [@&#8203;innocenzi](https://github.com/innocenzi) in [#&#8203;7348](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/pull/7348) #### New Contributors - [@&#8203;innocenzi](https://github.com/innocenzi) made their first contribution in [#&#8203;7348](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/pull/7348) **Full Changelog**: <https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.32.0...v3.32.1> ### [`v3.32.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3320) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.31.0...v3.32.0) - deps: Prevent using PHPCSFixer along with `unfinalize` package ([#&#8203;7343](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7343)) - feat: Deprecate `CompactNullableTypehintFixer` and proxy to `CompactNullableTypeDeclarationFixer` ([#&#8203;7339](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7339)) - feat: Deprecate `CurlyBracesPositionFixer` and proxy to `BracesPositionFixer` ([#&#8203;7334](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7334)) - feat: Deprecate `NewWithBracesFixer` and proxy to `NewWithParenthesesFixer` ([#&#8203;7331](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7331)) - feat: Deprecate `NoUnneededCurlyBracesFixer` and proxy to `NoUnneededBracesFixer` ([#&#8203;7335](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7335)) - feat: Rename `CurlyBraceTransformer` to `BraceTransformer` ([#&#8203;7333](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7333)) ### [`v3.31.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3310) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.30.0...v3.31.0) - chore: Use type declaration instead of type hint ([#&#8203;7338](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7338)) - feat: Introduce `attribute_placement` option for `MethodArgumentSpaceFixer` ([#&#8203;7320](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7320)) - fix: Adjust wording related to deprecations ([#&#8203;7332](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7332)) - fix: Correct deprecation header in rules' docs ([#&#8203;7337](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7337)) - fix: Replace mention of bracket with parenthesis ([#&#8203;7336](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7336)) - fix: `FunctionToConstantFixer` should run before `NativeConstantInvocationFixer` ([#&#8203;7344](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7344)) ### [`v3.30.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3300) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.29.0...v3.30.0) - feat: Introduce `AttributeEmptyParenthesesFixer` ([#&#8203;7284](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7284)) - fix(method\_argument\_space): inject new line after trailing space on current line ([#&#8203;7327](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7327)) - fix(`YodaStyleFixer`): do not touch `require(_once)`, `include(_once)` and `yield from` statements ([#&#8203;7325](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7325)) - fix: illegal offset type on file-wide return in `ReturnToYieldFromFixer` ([#&#8203;7318](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7318)) ### [`v3.29.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3290) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.28.0...v3.29.0) - chore: fix TODO tasks about T\_AMPERSAND\_FOLLOWED\_BY\_VAR\_OR\_VARARG support ([#&#8203;7316](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7316)) - feat(`@PhpCsFixer:risky`): use newest `@PER-CS:risky` instead of locked `@PER-CS2.0:risky` ([#&#8203;7323](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7323)) - feat: Introduce `@PER-CS` ruleset ([#&#8203;7321](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7321)) - fix: priority issue between array\_syntax and space after rules ([#&#8203;7324](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7324)) ### [`v3.28.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3280) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.27.0...v3.28.0) - chore(prlint): allow for 'deps' type ([#&#8203;7304](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7304)) - CI(prlint): allow for special chars in parentheses ([#&#8203;7308](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7308)) - deps(dev-tools): update dev-tools ([#&#8203;7309](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7309)) - DX: Bump XDebug version in Docker services ([#&#8203;7300](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7300)) - feat(`@PER-CS2.0`): Add `concat_space` to the ruleset ([#&#8203;7302](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7302)) ### [`v3.27.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3270) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.26.1...v3.27.0) - docs: cleanup old mention of `--show-progress=estimating` in docs ([#&#8203;7287](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7287)) - DX: add Composer script for applying CS fixes in parallel ([#&#8203;7274](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7274)) - feat: Clone PER-CS1.0 to PER-CS2.0 to prepare for adding new rules ([#&#8203;7249](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7249)) - feat: Introduce `LongToShorthandOperatorFixer` ([#&#8203;7295](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7295)) - feat: Mark PER-CS v1 as deprecated ([#&#8203;7283](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7283)) - feat: Move `single_line_empty_body` to `@PER-CS2.0` ([#&#8203;7282](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7282)) - fix: Priorities for fixers related to curly braces, empty lines and trailing whitespace ([#&#8203;7296](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7296)) - fix: `OrderedTraitsFixer` - better support for multiple traits in one `use` statement ([#&#8203;7289](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7289)) ### [`v3.26.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3261) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.26.0...v3.26.1) - fix: Handle superfluous asterisk in `no_superfluous_phpdoc_tags` ([#&#8203;7279](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7279)) ### [`v3.26.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3260) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.25.1...v3.26.0) - chore(checkbashisms): update to 2.23.6 ([#&#8203;7276](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7276)) - chore(phpstan): reduce baseline ([#&#8203;7275](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7275)) - feat: Add `single_line_empty_body` to `@PhpCsFixer` ([#&#8203;7266](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7266)) - fix(YieldFromArrayToYieldsFixer): mark as Risky ([#&#8203;7272](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7272)) - fix(YieldFromArrayToYieldsFixer): skip touching empty array ([#&#8203;7273](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7273)) - test: Introduce common way of creating fake Composer project in `InstallViaComposerTest` ([#&#8203;7265](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7265)) ### [`v3.25.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3251) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.25.0...v3.25.1) - fix: PhpdocTypesFixer - do not crash for type followed by braces/brackets/chevrons/parentheses ([#&#8203;7268](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7268)) ### [`v3.25.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3250) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.24.0...v3.25.0) - feat: Remove Doctrine dependencies ([#&#8203;7263](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7263)) ### [`v3.24.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3240) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.23.0...v3.24.0) - chore: apply CS ([#&#8203;7240](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7240)) - chore: apply static\_lambda rule ([#&#8203;7239](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7239)) - chore: Improve template for creating new issue ([#&#8203;7255](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7255)) - CI: Conventional Commits support in PRLint config ([#&#8203;7037](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7037)) - CI: Remove Travis leftovers ([#&#8203;7259](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7259)) - docs: Add information about installing Fixer as dev dependency ([#&#8203;7129](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7129)) - docs: document composer script aliases ([#&#8203;7230](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7230)) - DX: Add script for running Composer Require Checker ([#&#8203;7252](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7252)) - DX: composer script aliases - ensure templated description ([#&#8203;7235](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7235)) - DX: composer-script - count PHPMD as static-analysis ([#&#8203;7231](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7231)) - DX: do not allow version specific code sample with minimum PHP version lower than the lowest supported one ([#&#8203;7207](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7207)) - DX: ensure version specific code samples are suitable for at least 1 supported PHP version ([#&#8203;7212](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7212)) - DX: Improve contributing guide ([#&#8203;7241](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7241)) - DX: More descriptive stale messages ([#&#8203;7236](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7236)) - feat([@&#8203;PhpCsFixer](https://github.com/PhpCsFixer):risky): add static\_lambda rule ([#&#8203;7237](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7237)) - feat: Add literal separator support for `integer_literal_case` ([#&#8203;7081](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7081)) - feat: Configurable case sensitivity for more ordering fixers ([#&#8203;7021](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7021)) - feat: Support for attributes in `method_argument_space` ([#&#8203;7242](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7242)) - fix: import detection for attributes at `NoUnusedImportsFixer` ([#&#8203;7246](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7246)) - fix: `no_superfluous_phpdoc_tags` with `null` phpdoc ([#&#8203;7234](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7234)) - fix: `phpdoc_types` must not lowercase literal types ([#&#8203;7108](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7108)) - test: Add static methods from PHPUnit 9.6.11 ([#&#8203;7243](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7243)) ### [`v3.23.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3230) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.22.0...v3.23.0) - bug: BlankLineBeforeStatementFixer - do not enforce/add a blank line when there is a blank line between the comment and the statement already ([#&#8203;7190](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7190)) - bug: Fix detecting classy invocation in catch ([#&#8203;7191](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7191)) - bug: Fix names resolving in `no_superfluous_phpdoc_tags` fixer ([#&#8203;7189](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7189)) - bug: Fix various bugs in `FullyQualifiedStrictTypesFixer` fixer ([#&#8203;7188](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7188)) - bug: Fixed line between general script documentation and require ([#&#8203;7177](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7177)) - bug: Support annotations with arguments in `FinalInternalClassFixer` ([#&#8203;7160](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7160)) - bug: YieldFromArrayToYieldsFixer - fix for `yield from` after `}` ([#&#8203;7169](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7169)) - bug: YieldFromArrayToYieldsFixer - fix handling the comment before the first array element ([#&#8203;7193](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7193)) - bug: `HeaderCommentFixer` must run before `BlankLinesBeforeNamespaceFixer` ([#&#8203;7205](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7205)) - bug: `NoUselessReturnFixer` must run before `SingleLineEmptyBodyFixer` ([#&#8203;7226](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7226)) - bug: `PhpdocInlineTagNormalizerFixer` - do not break tags ([#&#8203;7227](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7227)) - docs: Add allowed values of tags in the `phpdoc_align` ([#&#8203;7120](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7120)) - docs: Add extra information for GitLab reporter's integration with GitLab Code Quality ([#&#8203;7172](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7172)) - docs: Change the single backticks to double in description of the rules option ([#&#8203;7173](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7173)) - docs: Condensed output for rule sets' list that fixer is included in ([#&#8203;7182](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7182)) - docs: Improve contributing guide ([#&#8203;7204](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7204)) - docs: `MethodArgumentSpaceFixer` - mention PSR in Fixer definition ([#&#8203;7157](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7157)) - DX: add first auto-review tests for composer.json file ([#&#8203;7210](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7210)) - DX: add `YieldFromArrayToYieldsFixer` to `PhpCsFixer` set ([#&#8203;7115](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7115)) - DX: Allow OS conditions for integration tests ([#&#8203;7161](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7161)) - DX: Apply current CS rules ([#&#8203;7178](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7178)) - DX: Apply suggestions from PR 7210 ([#&#8203;7213](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7213)) - DX: apply `ReturnToYieldFromFixer` ([#&#8203;7181](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7181)) - DX: Do not mark "long term ideas" as stale ([#&#8203;7206](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7206)) - DX: enable `HeredocIndentationFixer` for the codebase ([#&#8203;7195](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7195)) - DX: enable `UseArrowFunctionsFixer` for the codebase ([#&#8203;7194](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7194)) - DX: few phpstan fixes ([#&#8203;7208](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7208)) - DX: fix contravariant types in PHPDocs ([#&#8203;7167](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7167)) - DX: Fix detecting trailing spaces ([#&#8203;7216](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7216)) - DX: Fix some PHPStan issues ([#&#8203;7180](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7180)) - DX: Get rid of deprecation warnings in Mess Detector ([#&#8203;7215](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7215)) - DX: Improve Composer scripts ([#&#8203;7214](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7214)) - DX: Improve Mess Detector Integration ([#&#8203;7224](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7224)) - DX: Introduce Composer scripts as common DX ([#&#8203;6839](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6839)) - DX: refactor `ErrorOutputTest` ([#&#8203;7183](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7183)) - DX: remove unnecessary arrays from data providers ([#&#8203;7170](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7170)) - DX: update `CurlyBracesPositionFixer` code samples ([#&#8203;7198](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7198)) - DX: update `HeredocIndentationFixer` code samples ([#&#8203;7197](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7197)) - DX: update `PhpdocToReturnTypeFixer` code samples ([#&#8203;7199](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7199)) - feature: add at least one space around binary operators ([#&#8203;7175](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7175)) - feature: BlankLineBeforeStatementFixer - take into account comment before statement ([#&#8203;7166](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7166)) - feature: Introduce `ReturnToYieldFromFixer` ([#&#8203;7168](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7168)) - feature: Introduce `SpacesInsideParenthesesFixer` ([#&#8203;5709](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/5709)) - feature: Support array destructuring in `trim_array_spaces` ([#&#8203;7218](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7218)) - feature: `BlankLineBeforeStatementFixer` - skip enum cases ([#&#8203;7203](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7203)) - minor: more arrow function usage ([#&#8203;7223](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7223)) - minor: PhpdocAlignFixerTest - convert CUSTOM tags test to not rely on non-custom tag from TAGS\_WITH\_NAME ([#&#8203;7209](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7209)) - minor: use JSON\_THROW\_ON\_ERROR for trivial cases ([#&#8203;7221](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7221)) - minor: use more spread operator ([#&#8203;7222](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7222)) ### [`v3.22.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3220) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.21.3...v3.22.0) - DX: add proper test for `SelfAccessorFixer` must run before `SelfAccessorFixer` ([#&#8203;7153](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7153)) - DX: FixerFactoryTest - apply CS ([#&#8203;7154](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7154)) - feature: Introduce `PhpUnitDataProviderReturnTypeFixer` ([#&#8203;7156](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7156)) - feature: Introduce `YieldFromArrayToYieldsFixer` ([#&#8203;7114](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7114)) ### [`v3.21.3`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3213) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.21.2...v3.21.3) - Revert "DX: encourage to provide wider description" ([#&#8203;7155](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7155)) ### [`v3.21.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3212) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.21.1...v3.21.2) - docs: check format of FixerDefinition::getDescription() ([#&#8203;7127](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7127)) - DX: add phpstan/phpstan-strict-rules ([#&#8203;7143](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7143)) - DX: allow for progressive cache ([#&#8203;7132](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7132)) - DX: Copy-pasteable `class::getPriority` for phpDoc diffs ([#&#8203;7148](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7148)) - DX: do not allow linebreak at the beginning of code sample ([#&#8203;7126](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7126)) - DX: encourage to provide wider description ([#&#8203;7128](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7128)) - DX: fix function calls ([#&#8203;7136](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7136)) - DX: fix PHPDoc types issues ([#&#8203;7135](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7135)) - DX: improve `Tokens` checking for found tokens ([#&#8203;7139](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7139)) - DX: Make `AbstractFixerTestCase::getTestFile()` final ([#&#8203;7116](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7116)) - DX: make `array_search` call strict ([#&#8203;7145](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7145)) - DX: remove `empty` calls ([#&#8203;7138](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7138)) - DX: store cache to file only if content will get modified ([#&#8203;7151](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7151)) - DX: unify Preg:match in logical conditions ([#&#8203;7146](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7146)) - DX: use booleans in conditions ([#&#8203;7149](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7149)) - DX: Use ParaUnit to speed up tests ([#&#8203;6883](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6883)) - DX: Use relative fixture path as integration test case's name ([#&#8203;7147](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7147)) - DX: use strict assertions ([#&#8203;7144](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7144)) - DX: `AbstractIntegrationTestCase::provideIntegrationCases` - yield over array, better typehinting ([#&#8203;7150](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7150)) ### [`v3.21.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3211) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.21.0...v3.21.1) experimental release - Require PHP ^8.0.1 ### [`v3.21.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3210) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.20.0...v3.21.0) - bug: Fix and enhance Gitlab reporter ([#&#8203;7089](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7089)) - bug: Import with different case must not be removed by non-risky fixer ([#&#8203;7095](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7095)) - bug: ordered imports fixer top group only ([#&#8203;7023](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7023)) - bug: `FinalPublicMethodForAbstractClassFixer` - fix for readonly classes ([#&#8203;7123](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7123)) - DX: do not nest ".editorconfig" files ([#&#8203;7112](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7112)) - DX: exclude Dockerfile from dist ([#&#8203;7113](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7113)) - DX: fix checkbashisms installation ([#&#8203;7102](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7102)) - DX: fix Smoke tests for various git default branch name ([#&#8203;7119](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7119)) - DX: Fix `FileRemovalTest` (do not fail when running it standalone) ([#&#8203;7104](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7104)) - DX: Progress output refactor ([#&#8203;6848](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6848)) - DX: Rename abstract test classes to `*TestCase` convention ([#&#8203;7100](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7100)) - DX: test all PHPUnit migration sets ([#&#8203;7107](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7107)) - DX: \[Docker] Distinguish Alpine version between PHP versions ([#&#8203;7105](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7105)) - feature: Create cache path if it does not exist ([#&#8203;7109](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7109)) - feature: Introduce `NullableTypeDeclarationFixer` ([#&#8203;7002](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7002)) - feature: Introduce `TypeDeclarationSpacesFixer` ([#&#8203;7001](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7001)) - feature: `BlankLineBetweenImportGroupsFixer` - keep indent ([#&#8203;7122](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7122)) - minor: Parse callable using full phpdoc grammar ([#&#8203;7094](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7094)) - minor: PHP8.3 const type tokenizing ([#&#8203;7055](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7055)) ### [`v3.20.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3200) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.19.2...v3.20.0) - DX: fix priority of `FinalClassFixer` ([#&#8203;7091](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7091)) - DX: use FAST\_LINT\_TEST\_CASES=1 for CI run on macOS ([#&#8203;7092](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7092)) - feature: SingleLineEmptyBodyFixer - support interfaces, traits and enums ([#&#8203;7096](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7096)) - feature: `NullableTypeDeclarationForDefaultNullValue` - support for nullability in union types ([#&#8203;5819](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/5819)) ### [`v3.19.2`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3192) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.19.1...v3.19.2) - bug: NoMultipleStatementsPerLineFixer must run before CurlyBracesPositionFixer ([#&#8203;7087](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7087)) - bug: PhpdocAddMissingParamAnnotationFixer - fix for promoted properties ([#&#8203;7090](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7090)) - DX: fix priority of SingleBlankLineBeforeNamespaceFixer ([#&#8203;7088](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7088)) - minor: Parse all phpdoc types using full grammar ([#&#8203;7010](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7010)) ### [`v3.19.1`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3191) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.19.0...v3.19.1) - bug: CurlyBracesPositionFixer must run before StatementIndentationFixer ([#&#8203;7085](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7085)) ### [`v3.19.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3190) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.18.0...v3.19.0) - bug: SelfAccessorFixer - fix for union types ([#&#8203;7080](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7080)) - DX: add `php_unit_data_provider_name` to `@PhpCsFixer:risky` set ([#&#8203;7069](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7069)) - DX: make data providers return type "iterable" ([#&#8203;7072](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7072)) - DX: rename tests and data providers ([#&#8203;7070](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7070)) - feature: Introduce `PhpUnitDataProviderNameFixer` ([#&#8203;7057](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7057)) ### [`v3.18.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3180) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.17.0...v3.18.0) - bug: Fix tokenizing of type hints ([#&#8203;7054](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7054)) - bug: CompactNullableTypehintFixer - fix for whitespace between `?` and `static` ([#&#8203;6993](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6993)) - bug: consider function modifiers for `statement_indentation` ([#&#8203;6978](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6978)) - bug: Exclude `$this` from `TernaryToNullCoalescingFixer` ([#&#8203;7052](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7052)) - bug: False positive on used imports when docblock includes it with mismatching case ([#&#8203;6909](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6909)) - bug: Fix chained calls semicolon indent in switch case ([#&#8203;7045](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7045)) - bug: Fix multiline\_whitespace\_before\_semicolons for echo tags ([#&#8203;7019](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7019)) - bug: Fix phpDoc align when there is inconsistent spacing after comment star ([#&#8203;7012](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7012)) - bug: Fix phpDoc parsing without PCRE JIT ([#&#8203;7031](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7031)) - bug: Fix PhpdocVarWithoutNameFixer with Closure with $this ([#&#8203;6979](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6979)) - bug: Fix `return_assignment` not formatting when variables are used in `catch` and `finally` ([#&#8203;6960](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6960)) - bug: Fix `TypeExpression::allowsNull()` with nullable ([#&#8203;7000](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7000)) - bug: Improve definition of conflicting fixers ([#&#8203;7066](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7066)) - bug: LambdaNotUsedImportFixer - fix for anonymous class with a string argument ([#&#8203;6972](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6972)) - bug: ListFilesCommand - fix computing of relative path ([#&#8203;7028](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7028)) - bug: make `php_unit_namespaced` less greedy ([#&#8203;6952](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6952)) - bug: PhpdocToCommentFixer - fix for PHPDoc before fn ([#&#8203;6973](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6973)) - bug: Restructure PER-CS rule sets ([#&#8203;6707](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6707)) - bug: SelfStaticAccessor - fix static access inside enums ([#&#8203;7024](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7024)) - bug: SingleSpaceAroundConstructFixer - fix more cases involving `static` ([#&#8203;6995](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6995)) - bug: `FullyQualifiedStrictTypesFixer` - fix shortening when namespace is not empty and import exists ([#&#8203;7027](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7027)) - bug: `NoUnneededControlParenthesesFixer` PHP8.0 null-safe operator ([#&#8203;7056](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7056)) - bug: `PhpdocToCommentFixer` support for enum cases ([#&#8203;7040](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7040)) - DX: add more tests to CommentsAnalyzer ([#&#8203;7041](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7041)) - DX: Cleanup duplicate files in finder ([#&#8203;7042](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7042)) - DX: ControlCaseStructuresAnalyzerTest - cleanup ([#&#8203;6874](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6874)) - DX: Fix warning when running test on PHP<8 ([#&#8203;7008](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7008)) - DX: handle `@` in PR title ([#&#8203;6982](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6982)) - DX: officially deprecate internal Utils anti-pattern class ([#&#8203;7039](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7039)) - DX: Remove Fabbot.io conditional configuration ([#&#8203;7038](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7038)) - DX: rename data providers ([#&#8203;7058](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7058)) - DX: Use `actions/stale` to handle stale issues and pull requests ([#&#8203;5085](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/5085)) - DX: Use `Utils::naturalLanguageJoin()` in implode calls ([#&#8203;7032](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7032)) - feature: Add support for custom method placement in `ordered_class_elements` ([#&#8203;6360](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6360)) - feature: Allow case sensitive order for OrderedClassElementsFixer ([#&#8203;7020](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7020)) - feature: PHP8.3 - Add CT and block type for `Dynamic class constant fetch` ([#&#8203;7004](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7004)) - feature: Support attributes in `FinalClassFixer` ([#&#8203;6893](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6893)) - minor: "Callback" must not be fixed to "callback" by default ([#&#8203;7011](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7011)) - minor: Add `Util::naturalLanguageJoin()` ([#&#8203;7022](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7022)) - minor: ClassDefinitionFixer - handle attributes and `readonly` in anonymous class definitions ([#&#8203;7014](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7014)) - minor: FixerFactory::getFixersConflicts - better type hinting ([#&#8203;7044](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7044)) - minor: PHP8.3 - Fix TokensAnalyzer::isAnonymousClass support for `readonly` ([#&#8203;7013](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7013)) - minor: PHP8.3 - Typed class constants - handle nullable by transformer ([#&#8203;7009](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7009)) - minor: Reduce phpDoc type parser complexity from O(n^2) to O(nlog(n)) ([#&#8203;6988](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6988)) - minor: ReturnAssignmentFixer - Better handling of anonymous classes ([#&#8203;7015](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7015)) - minor: Transfer `HelpCommand::toString()` to `Utils` ([#&#8203;7034](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7034)) - minor: Unify "blank lines before namespace" fixers ([#&#8203;7053](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7053)) - minor: `SelfStaticAccessorFixer` improvements for enums ([#&#8203;7026](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7026)) - minor: `SingleSpaceAroundConstructFixer` - support space before `as` ([#&#8203;7029](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7029)) - minor: `UseArrowFunctionsFixer` - run before `FunctionDeclarationFixer` ([#&#8203;7065](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7065)) ### [`v3.17.0`](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3170) [Compare Source](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.16.0...v3.17.0) - bug: Allow string quote to be escaped within phpdoc constant ([#&#8203;6798](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6798)) - bug: ConfigurationResolver - fix running without cache ([#&#8203;6915](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6915)) - bug: Fix array/object shape phpdoc type parse ([#&#8203;6962](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6962)) - bug: Fix FullyQualifiedStrictTypesFixer common prefix bug ([#&#8203;6898](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6898)) - bug: Fix non-parenthesized callable return type parse ([#&#8203;6961](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6961)) - bug: Fix parsing of edge cases phpdoc types ([#&#8203;6977](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6977)) - bug: FullyQualifiedStrictTypesFixer - fix for FQCN type with class with the same name being imported ([#&#8203;6923](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6923)) - bug: GroupImportFixer - support for aliased imports ([#&#8203;6951](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6951)) - bug: MultilineWhitespaceBeforeSemicolonsFixer - fix chained calls ([#&#8203;6926](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6926)) - bug: MultilineWhitespaceBeforeSemicolonsFixer - fix for discovering multi line calls ([#&#8203;6938](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6938)) - bug: NoBreakCommentFixer - fix for nested match ([#&#8203;6899](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6899)) - bug: NoExtraBlankLinesFixer - fix for attribute in abstract function ([#&#8203;6920](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6920)) - bug: PhpdocTypesFixer - handle types with no space between type and variable ([#&#8203;6922](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6922)) - bug: PhpUnitMockShortWillReturnFixer - fix for trailing commas ([#&#8203;6900](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6900)) - bug: StatementIndentationFixer - fix comments at the end of if/elseif/else blocks ([#&#8203;6918](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6918)) - bug: StatementIndentationFixer - fix for multiline arguments starting with "new" keyword ([#&#8203;6913](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6913)) - bug: StatementIndentationFixer - fix for multiline arguments starting with "new" keyword preceded by class instantiation ([#&#8203;6914](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6914)) - bug: VoidReturnFixer - fix for intervening attributes ([#&#8203;6863](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6863)) - docs: improve code samples for MultilineWhitespaceBeforeSemicolonsFixer ([#&#8203;6919](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6919)) - docs: improve cookbook ([#&#8203;6880](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6880)) - DX: add cache related tests ([#&#8203;6916](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6916)) - DX: Apply `self_static_accessor` fixer to the project (again) ([#&#8203;6927](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6927)) - DX: cancel running builds on subsequent pushes in CI ([#&#8203;6940](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6940)) - DX: convert more `static` to `self` assert calls ([#&#8203;6931](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6931)) - DX: fix GitHub Actions errors and warnings ([#&#8203;6917](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6917)) - DX: fix Unsafe call to private method errors reported by PHPStan ([#&#8203;6879](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6879)) - DX: Improve performance of FunctionsAnalyzer ([#&#8203;6939](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6939)) - DX: improve test method names to avoid confusion ([#&#8203;6974](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6974)) - DX: Include self\_static\_accessor fixer in PhpCsFixer set ([#&#8203;6882](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6882)) - DX: make data providers static with straight-forward changes ([#&#8203;6907](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6907)) - DX: Mark Tokens::getNamespaceDeclarations as [@&#8203;internal](https://github.com/internal) ([#&#8203;6949](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6949)) - DX: PHPStan improvements ([#&#8203;6868](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6868)) - DX: refactor PhpdocAlignFixerTest ([#&#8203;6925](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6925)) - DX: Remove [@&#8203;inheritdoc](https://github.com/inheritdoc) PHPDoc ([#&#8203;6955](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6955)) - DX: Run AutoReview tests only once ([#&#8203;6889](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6889)) - DX: simplify EncodingFixer ([#&#8203;6956](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6956)) - DX: update Symfony rule set ([#&#8203;6958](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6958)) - DX: Use $tokens->getNamespaceDeclarations() to improve performance ([#&#8203;6942](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6942)) - DX: use force option for php\_unit\_data\_provider\_static in PHPUnit 10.0 migration set ([#&#8203;6908](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6908)) - DX: use only PHP modules that are required ([#&#8203;6954](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6954)) - DX: use PHPUnit's "requires" instead of "if" condition ([#&#8203;6975](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6975)) - feature: Add align\_multiline\_comment rule to [@&#8203;Symfony](https://github.com/Symfony) ([#&#8203;6875](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6875)) - feature: Add no\_null\_property\_initialization rule to [@&#8203;Symfony](https://github.com/Symfony) ([#&#8203;6876](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6876)) - feature: Add operator\_linebreak rule to [@&#8203;Symfony](https://github.com/Symfony) ([#&#8203;6877](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6877)) - feature: add SingleLineEmptyBodyFixer ([#&#8203;6933](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6933)) - feature: DescribeCommand - allow describing custom fixers ([#&#8203;6957](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6957)) - feature: Introduce `OrderedTypesFixer` ([#&#8203;6571](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6571)) - feature: Order of PHPDoc [@&#8203;param](https://github.com/param) annotations ([#&#8203;3909](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/3909)) - feature: Parse parenthesized & conditional phpdoc type ([#&#8203;6796](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6796)) - feature: PhpUnitInternalClassFixer - add empty line before PHPDoc ([#&#8203;6924](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6924)) - feature: \[PhpdocAlignFixer] Add support for every tag ([#&#8203;6564](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6564)) - minor: align NoSuperfluousPhpdocTagsFixer with actual Symfony configuration ([#&#8203;6953](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6953)) - minor: do not add empty line in PHPDoc when adding annotation in PHPUnit class ([#&#8203;6928](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6928)) - minor: PhpdocAlignFixer - support cases with type and variable separated with no space ([#&#8203;6921](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6921)) - minor: PhpdocSeparationFixer - add integration tests ([#&#8203;6929](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6929)) - minor: update PHPStan (to fix CI on master branch) ([#&#8203;6901](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6901)) - minor: Use single Dockerfile with multiple build targets ([#&#8203;6840](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6840)) </details> --- ### Configuration 📅 **Schedule**: (in timezone Europe/Amsterdam) - 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. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi45OS4wIiwidXBkYXRlZEluVmVyIjoiNDMuMjMyLjEiLCJ0YXJnZXRCcmFuY2giOiJtYXN0ZXIiLCJsYWJlbHMiOltdfQ==-->
chore(deps): update dependency friendsofphp/php-cs-fixer to v3.95.1
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
97d7b19cde
renovate-bot changed title from chore(deps): update dependency friendsofphp/php-cs-fixer to v3.95.1 to Update dependency friendsofphp/php-cs-fixer to v3.95.1 2026-05-07 06:01:16 +00:00
renovate-bot force-pushed renovate/friendsofphp-php-cs-fixer-3.x-lockfile from 97d7b19cde
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
to 5d08edaf97 2026-05-15 12:00:59 +00:00
Compare
renovate-bot changed title from Update dependency friendsofphp/php-cs-fixer to v3.95.1 to Update dependency friendsofphp/php-cs-fixer to v3.95.2 2026-05-15 12:01:19 +00:00
renovate-bot force-pushed renovate/friendsofphp-php-cs-fixer-3.x-lockfile from 5d08edaf97 to 87b774f374 2026-05-29 21:01:50 +00:00 Compare
renovate-bot changed title from Update dependency friendsofphp/php-cs-fixer to v3.95.2 to Update dependency friendsofphp/php-cs-fixer to v3.95.3 2026-05-29 21:02:08 +00:00
renovate-bot force-pushed renovate/friendsofphp-php-cs-fixer-3.x-lockfile from 87b774f374 to 31b601aa58 2026-06-03 21:01:53 +00:00 Compare
renovate-bot changed title from Update dependency friendsofphp/php-cs-fixer to v3.95.3 to Update dependency friendsofphp/php-cs-fixer to v3.95.4 2026-06-03 21:02:10 +00:00
renovate-bot force-pushed renovate/friendsofphp-php-cs-fixer-3.x-lockfile from 31b601aa58 to 11bf57fe51 2026-06-09 18:02:55 +00:00 Compare
renovate-bot changed title from Update dependency friendsofphp/php-cs-fixer to v3.95.4 to Update dependency friendsofphp/php-cs-fixer to v3.95.5 2026-06-09 18:03:13 +00:00
renovate-bot force-pushed renovate/friendsofphp-php-cs-fixer-3.x-lockfile from 11bf57fe51 to 82c1aad180 2026-06-13 15:01:52 +00:00 Compare
renovate-bot changed title from Update dependency friendsofphp/php-cs-fixer to v3.95.5 to Update dependency friendsofphp/php-cs-fixer to v3.95.6 2026-06-13 15:02:09 +00:00
renovate-bot force-pushed renovate/friendsofphp-php-cs-fixer-3.x-lockfile from 82c1aad180 to ed4f1642a1 2026-06-13 18:01:56 +00:00 Compare
renovate-bot changed title from Update dependency friendsofphp/php-cs-fixer to v3.95.6 to Update dependency friendsofphp/php-cs-fixer to v3.95.7 2026-06-13 18:02:14 +00:00
renovate-bot force-pushed renovate/friendsofphp-php-cs-fixer-3.x-lockfile from ed4f1642a1 to d8ff292932 2026-06-17 00:01:53 +00:00 Compare
renovate-bot changed title from Update dependency friendsofphp/php-cs-fixer to v3.95.7 to Update dependency friendsofphp/php-cs-fixer to v3.95.8 2026-06-17 00:02:11 +00:00
renovate-bot force-pushed renovate/friendsofphp-php-cs-fixer-3.x-lockfile from d8ff292932 to 73ef7d9bcf 2026-06-19 12:11:20 +00:00 Compare
renovate-bot changed title from Update dependency friendsofphp/php-cs-fixer to v3.95.8 to Update dependency friendsofphp/php-cs-fixer to v3.95.9 2026-06-19 12:11:40 +00:00
renovate-bot force-pushed renovate/friendsofphp-php-cs-fixer-3.x-lockfile from 73ef7d9bcf to ad867dfdd0 2026-06-19 15:03:30 +00:00 Compare
renovate-bot changed title from Update dependency friendsofphp/php-cs-fixer to v3.95.9 to Update dependency friendsofphp/php-cs-fixer to v3.95.10 2026-06-19 15:03:50 +00:00
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/friendsofphp-php-cs-fixer-3.x-lockfile:renovate/friendsofphp-php-cs-fixer-3.x-lockfile
git switch renovate/friendsofphp-php-cs-fixer-3.x-lockfile

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch master
git merge --no-ff renovate/friendsofphp-php-cs-fixer-3.x-lockfile
git switch renovate/friendsofphp-php-cs-fixer-3.x-lockfile
git rebase master
git switch master
git merge --ff-only renovate/friendsofphp-php-cs-fixer-3.x-lockfile
git switch renovate/friendsofphp-php-cs-fixer-3.x-lockfile
git rebase master
git switch master
git merge --no-ff renovate/friendsofphp-php-cs-fixer-3.x-lockfile
git switch master
git merge --squash renovate/friendsofphp-php-cs-fixer-3.x-lockfile
git switch master
git merge --ff-only renovate/friendsofphp-php-cs-fixer-3.x-lockfile
git switch master
git merge renovate/friendsofphp-php-cs-fixer-3.x-lockfile
git push origin master
Sign in to join this conversation.
No description provided.