FAQ | This is a LIVE service | Changelog

Skip to content

fix(deps): update dependency friendsofphp/php-cs-fixer to v3

This MR contains the following updates:

Package Change Age Confidence
friendsofphp/php-cs-fixer ^2.2.20|^2.12 -> 3.89.1 age confidence

⚠️ Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

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

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 favor 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 - analyze 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 MRs (#​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 honor 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/MRs 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 MRs (#​7683)
  • docs: CONTRIBUTING.md - update Opening a MR (#​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 honor 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/MRs 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 MR 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 MR 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)

v3.16.0

Compare Source

  • bug: ControlStructureBracesFixer - handle closing tag (#​6873)
  • bug: CurlyBracesPositionFixer - fix for callable return type (#​6855)
  • bug: CurlyBracesPositionFixer - fix for DNF types (#​6859)
  • bug: Fix MultilineWhitespaceBeforeSemicolonsFixer (#​5126)
  • docs: Fix rule description (#​6844)
  • DX: fix checkbashisms installation (#​6843)
  • DX: make data providers static for fixer's tests (#​6860)
  • DX: refactor PHPUnit fixers adding class-level annotation to use shared code (#​6756)
  • DX: unify option's descriptions (#​6856)
  • feature: AbstractPhpUnitFixer - support attribute detection in docblock insertion (#​6858)
  • feature: add "force" option to PhpUnitDataProviderStaticFixer (#​6757)
  • feature: introduce single_space_around_construct, deprecate single_space_after_construct (#​6857)
  • feature: PhpUnitTestClassRequiresCoversFixer - support single-line PHPDocs (#​6847)
  • minor: Deprecate BracesFixer (#​4885)
  • minor: Fix autocompletion for Tokens::offsetGet() (#​6838)
  • minor: PHP8.2 Docker runtime (#​6833)
  • minor: Use Composer binary-only images instead of installer script (#​6834)

v3.15.1

Compare Source

  • bug: BinaryOperatorSpacesFixer - fix for static in type (#​6835)
  • bug: BinaryOperatorSpacesFixer - fix parameters with union types passed by reference (#​6826)
  • bug: NoUnusedImportsFixer - fix for splat operator (#​6836)
  • DX: fix CI (#​6837)
  • feature: Support for type casing in arrow functions (#​6831)
  • minor: fix CI on PHP 8.3 (#​6827)

v3.15.0

Compare Source

  • bug: VisibilityRequiredFixer - handle DNF types (#​6806)
  • DX: officially enable 8.2 support (#​6825)

v3.14.5

Compare Source

  • bug: EmptyLoopBodyFixer must keep comments inside (#​6800)
  • bug: FunctionsAnalyzer - fix detecting global function (#​6792)
  • bug: NativeFunctionTypeDeclarationCasingFixer - do not require T_STRING present in code (#​6812)
  • bug: PhpdocTypesFixer - do not change case of array keys (#​6810)
  • bug: PhpUnitTestAnnotationFixer - do not break single line @​depends (#​6824)
  • docs: Add supported PHP versions section to the README (#​6768)
  • docs: drop Atom from readme, due to it's sunsetting (#​6778)
  • DX: Add composer keywords (#​6781)
  • DX: update PHPStan to 1.10.3 (#​6805)
  • feature: [PHP8.2] Support for readonly classes (#​6745)
  • minor: add custom tokens for Disjunctive Normal Form types parentheses (#​6823)
  • minor: PHP8.2 - handle union and intersection types for DNF types (#​6804)
  • minor: PHP8.2 - support property in const expressions (#​6803)

v3.14.4

Compare Source

  • bug: CurlyBracesPositionFixer - fix for open brace not preceded by space and followed by a comment (#​6776)
  • docs: drop license end year (#​6767)
  • DX: use numeric_literal_separator (#​6766)
  • feature: Allow installation of sebastian/diff:^5.0.0 (#​6771)

v3.14.3

Compare Source

  • DX: Drop doctrine/annotations 1, allow doctrine/lexer 3 (#​6730)

v3.14.2

Compare Source

  • DX: Drop support for doctrine/lexer 1 (#​6729)

v3.14.1

Compare Source

  • DX: Allow doctrine/annotations 2 (#​6721)

v3.14.0

Compare Source

  • bug: Fix indentation for comment at end of function followed by a comma (#​6542)
  • bug: Fix PHPDoc alignment fixer containing callbacks using \Closure (#​6746)
  • bug: Fix type error when using paths intersection mode (#​6734)
  • bug: PhpdocSeparationFixer - Make groups handling more flexible (#​6668)
  • docs: make bug_report.md template more explicit (#​6736)
  • docs: PhpUnitTestCaseIndicator - fix docs (#​6727)
  • DX: apply CS (#​6759)
  • DX: bump doctrine/annotations to prevent installing version with unintentional BC break (#​6739)
  • DX: update deps (#​6760)
  • DX: upgrade dev-tools/composer.json (#​6737)
  • DX: upgrade PHPStan to 1.9.7 (#​6741)
  • feature: Add php 7.4 types to Cookbook docs (#​6763)
  • feature: add PhpUnitDataProviderStaticFixer (#​6702)
  • feature: binary_operator_spaces - Revert change about => alignment and use option instead (#​6724)
  • feature: make OrderedInterfacesFixer non-risky (#​6722)
  • feature: OctalNotationFixer - support _ notation (#​6762)
  • fix: enum case "PARENT" must not be renamed (#​6732)
  • minor: Follow PSR12 ordered imports in Symfony ruleset (#​6712)
  • minor: improve rule sets order (#​6738)

v3.13.2

Compare Source

  • bug: Fix type error when using paths intersection mode (#​6734)

v3.13.1

Compare Source

  • bug: Align all the arrows inside the same array (#​6590)
  • bug: Fix priority between modernize_types_casting and no_unneeded_control_parentheses (#​6687)
  • bug: TrailingCommaInMultilineFixer - do not add trailing comma when there is no break line after last element (#​6677)
  • docs: Fix docs for disabled rules in rulesets (#​6679)
  • docs: fix the cookbook_fixers.rst (#​6672)
  • docs: Update installation recommended commands for mkdir argument (-p insteadof --parents). (#​6689)
  • Make static data providers that are not using dynamic calls (#​6696)
  • minor: displaying number of checked files (#​6674)

v3.13.0

Compare Source

  • bug: BracesFixer - Fix unexpected extra blank line (#​6667)
  • bug: fix CI on master branch (#​6663)
  • bug: IsNullFixer - handle casting (#​6661)
  • docs: feature or bug (#​6652)
  • docs: Use case insensitive sorting for options (#​6666)
  • docs: [DateTimeCreateFromFormatCallFixer] Fix typos in the code sample (#​6671)
  • DX: update cli-executor (#​6664)
  • DX: update dev-tools (#​6665)
  • feature: Add global_namespace_import to @​Symfony ruleset (#​6662)
  • feature: Add separate option for closure_fn_spacing (#​6658)
  • feature: general_phpdoc_annotation_remove - allow add case_sensitive option (#​6660)
  • minor: AllowedValueSubset - possible values are sorted (#​6651)
  • minor: Use md5 for file hashing to reduce possible collisions (#​6597)

v3.12.0

Compare Source

  • bug: SingleLineThrowFixer - Handle throw expression inside block (#​6653)
  • DX: create TODO to change default ruleset for v4 (#​6601)
  • DX: Fix SCA findings (#​6626)
  • DX: HelpCommand - fix docblock (#​6584)
  • DX: Narrow some docblock types (#​6581)
  • DX: Remove redundant check for PHP <5.2.7 (#​6620)
  • DX: Restore PHPDoc to type rules workflow step (#​6615)
  • DX: SCA - scope down types (#​6630)
  • DX: Specify value type in iterables in tests (#​6594)
  • DX: Test on PHP 8.2 (#​6558)
  • DX: Update GitHub Actions (#​6606)
  • DX: Update PHPStan (#​6616)
  • feature: Add @PHP82Migration ruleset (#​6621)
  • feature: ArrayPushFixer now fix short arrays (#​6639)
  • feature: NoSuperfluousPhpdocTagsFixer - support untyped and empty annotations in phpdoc (#​5792)
  • feature: NoUselessConcatOperatorFixer - Introduction (#​6447)
  • feature: Support for constants in traits (#​6607)
  • feature: [PHP8.2] Support for new standalone types (null, true, false) (#​6623)
  • minor: GitHub Workflows security hardening (#​6644)
  • minor: prevent BC break in ErrorOutput (#​6633)
  • minor: prevent BC break in Runner (#​6634)
  • minor: Revert "minor: prevent BC break in Runner" (#​6637)
  • minor: Update dev tools (#​6554)

v3.11.0

Compare Source

  • bug: DateTimeCreateFromFormatCallFixer - Mark as risky (#​6575)
  • bug: Do not treat implements list comma as array comma (#​6595)
  • bug: Fix MethodChainingIndentationFixer with arrow functions and class instantiation (#​5587)
  • bug: MethodChainingIndentationFixer - Fix bug with attribute access (#​6573)
  • bug: NoMultilineWhitespaceAroundDoubleArrowFixer - fix for single line comment (#​6589)
  • bug: TypeAlternationTransformer - TypeIntersectionTransformer - Bug: handle attributes (#​6579)
  • bug: [BinaryOperatorFixer] Fix more issues with scoped operators (#​6559)
  • docs: Remove $ from console command snippets (#​6600)
  • docs: Remove $ from console command snippets in documentation (#​6599)
  • DX: AllowedValueSubset::getAllowedValues - fix method prototype (#​6585)
  • DX: Narrow docblock types in FixerConfiguration (#​6580)
  • DX: updagte @​PhpCsFixer set config for phpdoc_order rule (#​6555)
  • DX: Update PHPUnit config (#​6566)
  • feature: Introduce configurability to PhpdocSeparationFixer (#​6501)
  • feature: Introduce PER set (#​6545)
  • feature: NoTrailingCommaInSinglelineFixer - Introduction (#​6529)
  • feature: Support removing superfluous PHPDocs involving self (#​6583)
  • minor: NoUnneededControlParenthesesFixer - Support instanceof static cases (#​6587)
  • minor: PhpdocToCommentFixer - allow phpdoc comments before trait use statement. Fixes #​6092 (#​6565)

v3.10.0

Compare Source

  • bug: Fix error in regular_callable_call with static property (#​6539)
  • bug: Fix indentation for multiline class definition (#​6540)
  • bug: Fix indentation for switch ending with empty case (#​6538)
  • bug: Fix indentation of comment at end of switch case (#​6493)
  • bug: PhpdocAlignFixer - fix static @method (#​6366)
  • bug: SingleSpaceAfterConstructFixer - fix handling open tag (#​6549)
  • bug: VisibilityRequiredFixer must run before ClassAttributesSeparationFixer (#​6548)
  • DX: Assert dataproviders of tests of project itself return "array" or "iterable". (#​6524)
  • feature: Introduce configurability to PhpdocOrderFixer (#​6466)
  • feature: WhitespaceAfterCommaInArrayFixer - add option "ensure_single_space" (#​6527)
  • minor: Add test for indentation of trait conflict resolution (#​6541)
  • minor: Split BracesFixer (#​4884)
  • minor: TrailingCommaInMultilineFixer - Add comma to multiline new static (#​6380)

v3.9.6

Compare Source

  • bug: BinaryOperatorSpacesFixer: Solve issues with scoped arrow and equal alignments (#​6515)
  • bug: Fix 3 weird behavior about BinaryOperatorSpacesFixer (#​6450)
  • docs: Add intersection type to types_spaces rule description (#​6479)
  • DX: no need to use forked diff anymore (#​6526)
  • DX: remove unused FixerFileProcessedEvent::STATUS_UNKNOWN (#​6516)
  • Improve statement_indentation compatibility with braces (#​6401)
  • minor: add test: multi-line comments before else indented correctly. (#​3573)
  • minor: ReturnAssignmentFixer - Support for anonymous classes, lambda and match (#​6391)

v3.9.5

Compare Source

  • bug: AlternativeSyntaxAnalyzer - fix for nested else (#​6495)
  • bug: Fix cases related to binary strings (#​6432)
  • bug: Fix trailing whitespace after moving brace (#​6489)
  • bug: NoUnneededControlParenthesesFixer - Fix some curly close cases (#​6502)
  • bug: TypeColonTransformer - fix for backed enum types (#​6494)
  • DX: Add tests for type colon in backed enums (#​6497)
  • DX: Fix CI static analysis workflow (#​6506)
  • DX: Fix PHPStan errors (#​6504)
  • DX: Increase PHPStan level to 6 (#​6468)
  • DX: Narrow docblock types in Runner and Report (#​6465)
  • DX: Narrow docblock types in Tokenizer (#​6293)
  • minor: extract NoMultipleStatementsPerLineFixer from BracesFixer (#​6458)
  • minor: Let PhpdocLineSpan fixer detect docblocks when separator from token with attribute (#​6343)

v3.9.4

Compare Source

  • bug: Fix various indentation issues (#​6480)
  • bug: Fix wrong brace position after static return type (#​6485)
  • bug: Prevent breaking functions returning by reference (#​6487)

v3.9.3

Compare Source

  • bug: Fix BinaryOperatorSpacesFixer adding whitespace outside PHP blocks (#​6476)
  • bug: Fix brace location after multiline function signature (#​6475)

v3.9.2

Compare Source

  • bug: Fix indentation after control structure in switch (#​6473)

v3.9.1

Compare Source

  • bug: Add attributes support to statement_indentation (#​6429)
  • bug: BinaryOperatorSpacesFixer - Allow to align = inside array definitions (#​6444)
  • bug: BinaryOperatorSpacesFixer - Fix align of operator with function declaration (#​6445)
  • bug: ConstantCaseFixer - Do not touch enum case (#​6367)
  • bug: CurlyBracesPositionFixer - multiple elseifs (#​6459)
  • bug: Fix #​6439 issue in StaticLambda fixer (#​6440)
  • bug: FullOpeningTagFixer - fix substr check for pre PHP8 (#​6388)
  • bug: IncrementStyleFixer - NoSpacesInsideParenthesisFixer - prio (#​6416)
  • bug: LambdaNotUsedImportFixer must run before MethodArgumentSpaceFixer (#​6453)
  • bug: MethodArgumentSpaceFixer - first element in same line, space before comma and inconsistent indent (#​6438)
  • bug: NoSuperfluousPhpdocTagsFixer - fix for promoted properties (#​6403)
  • bug: StatementIndentationFixer - Fix indentation for multiline traits use (#​6402)
  • bug: StrictComparisonFixer must rune before ModernizeStrposFixer (#​6455)
  • bug: TokensAnalyzer - fix intersection types considered as binary operator (#​6414)
  • DX: ISSUE_TEMPLATE hints to check applied rules (#​6398)
  • DX: Add more type hints (#​6383)
  • DX: Fix CI/CD issues (#​6411)
  • DX: cleanup test (#​6410)
  • DX: integrate PRLint (#​6406)
  • feature: BlankLineBetweenImportGroupsFixer - Introduction (#​6365)
  • feature: DateTimeCreateFromFormatCallFixer - Add DateTimeImmutable support (#​6350)
  • feature: Extract StatementIndentationFixer from BracesFixer (#​5960)
  • feature: ModernizeStrposFixer - fix leading backslash with yoda (#​6377)
  • feature: NoExtraBlankLinesFixer - Add attributes option - Fix support for enum case (#​6426)
  • feature: NoUnneededControlParenthesesFixer - Fix more cases (#​6409)
  • feature: NoUselessNullsafeOperatorFixer - Introduction (#​6425)
  • feature: OrderedTrait - Move Phpdoc with trait import (#​6361)
  • feature: PhpdocOrderByValueFixer - Allow sorting of mixin annotations by value (#​6446)
  • feature: TrailingCommaInMultiline - Add match support (#​6381)
  • minor: Allow Composer Normalize plugin (#​6454)
  • minor: ExplicitStringVariableFixer - Fix to PHP8.2 compat code (#​6424)
  • minor: Extract ControlStructureBracesFixer from BracesFixer (#​6399)
  • minor: NoBinaryStringFixer - Fix more cases (#​6442)
  • minor: NoSuperfluousPhpdocTagsFixer - Attribute handling (#​6382)
  • minor: PhpCsFixerSet - Update blank_line_before_statement config (#​6389)
  • minor: Remove unnecessary PHP version constraints (#​6461)
  • minor: SingleImportPerStatementFixer - fix PSR12 set (#​6415)
  • minor: SingleSpaceAfterConstructFixer - add option type_colon (#​6434)
  • minor: SymfonySet - Add SimpleToComplexStringVariableFixer (#​6423)
  • minor: Update PHPStan (#​6467)
  • minor: extract CurlyBracesPositionFixer from BracesFixer (#​6452)

v3.8.0

Compare Source

  • bug #​6322 PhpdocTypesFixer - fix recognizing callable (kubawerlos)
  • bug #​6331 ClassReferenceNameCasingFixer - Fix false hits (SpacePossum)
  • bug #​6333 BinaryOperatorSpacesFixer - Fix for alignment in elseif (paulbalandan, SpacePossum)
  • bug #​6337 PhpdocTypesFixer - fix recognising callable without return type (kubawerlos)
  • feature #​6286 DateTimeCreateFromFormatCallFixer - Introduction (liquid207)
  • feature #​6312 TypesSpacesFixer - add option for CS of catching multiple types of exceptions (SpacePossum)
  • minor #​6326 Bump migration sets used to PHP7.4 (SpacePossum)
  • minor #​6328 DX: .gitignore ASC file (keradus)

v3.7.0

Compare Source

  • bug #​6112 [BinaryOperatorSpacesFixer] Fix align of = inside calls of methods (VincentLanglet)
  • bug #​6279 ClassReferenceNameCasingFixer - Fix for double arrow (SpacePossum)
  • bug #​6280 Fix bunch of enum issues (SpacePossum)
  • bug #​6283 ClassReferenceNameCasingFixer - detect imports (SpacePossum)
  • feature #​5892 NewWithBracesFixer - option to remove braces (jrmajor)
  • feature #​6081 Allow multiline constructor arguments in an anonymous classes (jrmajor, SpacePossum)
  • feature #​6274 SingleLineCommentSpacingFixer - Introduction (SpacePossum)
  • feature #​6300 OrderedClassElementsFixer - handle enums (gharlan)
  • feature #​6304 NoTrailingCommaInSinglelineFunctionCallFixer - Introduction (SpacePossum)
  • minor #​6277 Add is_scalar, sizeof, ini_get in list of compiled functions (jderusse)
  • minor #​6284 ClassReferenceNameCasingFixer - Update doc (SpacePossum)
  • minor #​6289 PHP7.4 - clean up tests (SpacePossum)
  • minor #​6290 PHP7.4 - properties types (SpacePossum)
  • minor #​6291 PHP7.4 - remove run time checks (SpacePossum)
  • minor #​6292 PhpUnitDedicateAssertFixer - Fix more count cases (SpacePossum)
  • minor #​6294 PhpUnitDedicateAssertFixer - add assertInstanceOf support (SpacePossum)
  • minor #​6295 PhpUnitTestCaseIndicator - Check if PHPUnit-test class extends another class (SpacePossum)
  • minor #​6298 Fix checkbashisms download ans SCA violations (SpacePossum)
  • minor #​6301 BracesFixer - handle enums (gharlan)
  • minor #​6302 Bump checkbashisms version (kubawerlos)
  • minor #​6303 PHP8 - Utilize "get_debug_type" (SpacePossum)
  • minor #​6316 bump xdebug-handler (SpacePossum)
  • minor #​6327 bump polyfills (SpacePossum)

v3.6.0

Compare Source

  • bug #​6063 PhpdocTypesOrderFixer - Improve nested types support (ruudk, julienfalque)
  • bug #​6197 FullyQualifiedStrictTypesFixer - fix same classname is imported from … (SpacePossum)
  • bug #​6241 NoSuperfluousPhpdocTagsFixer - fix for reference and splat operator (kubawerlos)
  • bug #​6243 PhpdocTypesOrderFixer - fix for intersection types (kubawerlos)
  • bug #​6254 PhpUnitDedicateAssertFixer - remove is_resource. (drupol)
  • bug #​6264 TokensAnalyzer - fix isConstantInvocation detection for multiple exce… (SpacePossum)
  • bug #​6265 NullableTypeDeclarationForDefaultNullValueFixer - handle "readonly" a… (SpacePossum)
  • bug #​6266 SimplifiedIfReturnFixer - handle statement in loop without braces (SpacePossum)
  • feature #​6262 ClassReferenceNameCasingFixer - introduction (SpacePossum)
  • feature #​6267 NoUnneededImportAliasFixer - Introduction (SpacePossum)
  • minor #​6199 HeaderCommentFixer - support monolithic files with shebang (kubawerlos, keradus)
  • minor #​6231 Fix priority descriptions and tests. (SpacePossum)
  • minor #​6237 DX: Application - better display version when displaying gitSha (keradus)
  • minor #​6242 Annotation - improve on recognising types with reference and splat operator (kubawerlos)
  • minor #​6250 Tokens - optimize cache clear (SpacePossum)
  • minor #​6269 Docs: redo warnings in RST docs to fix issue on website docs (keradus)
  • minor #​6270 ClassReferenceNameCasingFixer - Add missing test cases for catch (SpacePossum)
  • minor #​6273 Add priority test (SpacePossum)

v3.5.0

Compare Source

  • bug #​6058 Fix Tokens::insertSlices not moving around all affected tokens (paulbalandan, SpacePossum)
  • bug #​6160 NonPrintableCharacterFixer - fix for when removing non-printable character break PHP syntax (kubawerlos)
  • bug #​6165 DeclareEqualNormalizeFixer - fix for declare having multiple directives (kubawerlos)
  • bug #​6170 NonPrintableCharacterFixer - fix for string in single quotes, having non-breaking space, linebreak, and single quote inside (kubawerlos)
  • bug #​6181 UseTransformer - Trait import in enum fix (PHP8.1) (SpacePossum)
  • bug #​6188 PhpdocTo(Param|Property|Return)TypeFixer - fix for type intersections (kubawerlos)
  • bug #​6202 SquareBraceTransformer - fix for destructing square brace after double arrow (kubawerlos)
  • bug #​6209 OrderedClassElementsFixer - PHP8.0 support abstract private methods in traits (SpacePossum)
  • bug #​6224 ArgumentsAnalyzer - support PHP8.1 readonly (SpacePossum)
  • feature #​4571 BlankLineBeforeStatementFixer - can now add blank lines before doc-comments (addiks, SpacePossum)
  • feature #​5953 GetClassToClassKeywordFixer - introduction (paulbalandan)
  • minor #​6108 Drop support for Symfony v4 (keradus)
  • minor #​6163 CI: update used PHP version (keradus)
  • minor #​6167 SingleSpaceAfterConstructFixer - allow multiline const (y_ahiru, SpacePossum)
  • minor #​6168 indexes -> indices (SpacePossum)
  • minor #​6171 Fix tests and CS (SpacePossum)
  • minor #​6172 DX: Tokens::insertSlices - groom code and fix tests (keradus)
  • minor #​6174 PhpdocAlignFixer: fix property-read/property-write descriptions not getting aligned (antichris)
  • minor #​6177 DX: chmod +x for benchmark.sh file (keradus)
  • minor #​6180 gitlab reporter - add fixed severity to match format (cbourreau)
  • minor #​6183 Simplify DiffConsoleFormatter (kubawerlos)
  • minor #​6184 Do not support array of patterns in Preg methods (kubawerlos)
  • minor #​6185 Upgrade PHPStan (kubawerlos)
  • minor #​6189 Finder - fix usage of ignoreDotFiles (kubawerlos)
  • minor #​6190 DX: DiffConsoleFormatter - escape - (keradus)
  • minor #​6194 Update Docker setup (julienfalque)
  • minor #​6196 clean ups (SpacePossum)
  • minor #​6198 DX: format dot files (kubawerlos)
  • minor #​6200 DX: Composer's branch-alias leftovers cleanup (kubawerlos)
  • minor #​6203 Bump required PHP to 7.4 (keradus)
  • minor #​6205 DX: bump PHPUnit to v9, PHPUnit bridge to v6 and Prophecy-PHPUnit to v2 (keradus)
  • minor #​6210 NullableTypeDeclarationForDefaultNullValueFixer - fix tests (HypeMC)
  • minor #​6212 bump year 2021 -> 2022 (SpacePossum)
  • minor #​6215 DX: Doctrine\Annotation\Tokens - fix phpstan violations (keradus)
  • minor #​6216 DX: Doctrine\Annotation\Tokens - drop unused methods (keradus)
  • minor #​6217 DX: lock SCA tools for MR builds (keradus)
  • minor #​6218 Use composer/xdebug-handler v3 (gharlan)
  • minor #​6222 Show runtime on version command (SpacePossum)
  • minor #​6229 Simplify Tokens::isMonolithicPhp tests (kubawerlos)
  • minor #​6232 Use expectNotToPerformAssertions where applicable (SpacePossum)
  • minor #​6233 Update Tokens::isMonolithicPhp (kubawerlos)
  • minor #​6236 Annotation - improve getting variable name (kubawerlos)

v3.4.0

Compare Source

  • bug #​6117 SingleSpaceAfterConstruct - handle before destructuring close brace (liquid207)
  • bug #​6122 NoMultilineWhitespaceAroundDoubleArrowFixer - must run before MethodArgumentSpaceFixer (kubawerlos)
  • bug #​6130 StrictParamFixer - must run before MethodArgumentSpaceFixer (kubawerlos)
  • bug #​6137 NewWithBracesFixer - must run before ClassDefinitionFixer (kubawerlos)
  • bug #​6139 PhpdocLineSpanFixer - must run before NoSuperfluousPhpdocTagsFixer (kubawerlos)
  • bug #​6143 OperatorLinebreakFixer - fix for alternative syntax (kubawerlos)
  • bug #​6159 ImportTransformer - fix for grouped constant and function imports (kubawerlos)
  • bug #​6161 NoUnreachableDefaultArgumentValueFixer - fix for attributes (kubawerlos)
  • feature #​5776 DX: test on PHP 8.1 (kubawerlos)
  • feature #​6152 PHP8.1 support (SpacePossum)
  • minor #​6095 Allow Symfony 6 (derrabus, keradus)
  • minor #​6107 Drop support of PHPUnit v7 dependency (keradus)
  • minor #​6109 Add return type to DummyTestSplFileInfo::getRealPath() (derrabus)
  • minor #​6115 Remove PHP 7.2 polyfill (derrabus)
  • minor #​6116 CI: remove installation of mbstring polyfill in build script, it's required dependency now (keradus)
  • minor #​6119 OrderedClassElementsFixer - PHPUnit assert(Pre|Post)Conditions methods support (meyerbaptiste)
  • minor #​6121 Use Tokens::ensureWhitespaceAtIndex to simplify code (kubawerlos)
  • minor #​6127 Remove 2nd parameter to XdebugHandler constructor (phil-davis)
  • minor #​6129 clean ups (SpacePossum)
  • minor #​6138 PHP8.1 - toString cannot return type hint void (SpacePossum)
  • minor #​6146 PHP 8.1: add new_in_initializers to PHP 8.1 integration test (keradus)
  • minor #​6147 DX: update composer-normalize (keradus)
  • minor #​6156 DX: drop hack for Prophecy incompatibility (keradus)

v3.3.2: Trinacria

Compare Source

experimental release

  • Drop support for Symfony v4

v3.3.1

Compare Source

  • minor #​6067 Bump minimum PHP version to 7.2 (keradus)

v3.3.0

Compare Source

  • bug #​6054 Utils - Add multibyte and UTF-8 support (paulbalandan)
  • bug #​6061 ModernizeStrposFixer - fix for negated with leading slash (kubawerlos)
  • bug #​6064 SquareBraceTransformer - fix detect array destructing in foreach (SpacePossum)
  • bug #​6082 PhpUnitDedicateAssertFixer must run before NoUnusedImportsFixer (kubawerlos)
  • bug #​6089 TokensAnalyzer.php - Fix T_ENCAPSED_AND_WHITESPACE handling in isBina… (SpacePossum)
  • feature #​5123 PhpdocTypesFixer - support generic types (kubawerlos)
  • minor #​5775 DX: run static code analysis on PHP 8.0 (kubawerlos)
  • minor #​6050 DX: TypeIntersectionTransformer - prove to not touch T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG (keradus)
  • minor #​6051 NoExtraBlankLinesFixer - Improve deprecation message (paulbalandan)
  • minor #​6060 DX: Add upgrade guide link when next Major is available (keradus)
  • minor #​6066 Clean ups (SpacePossum, kubawerlos)
  • minor #​6069 DX: cleanup stub file (keradus)
  • minor #​6070 Update UPGRADE-v3.md with php_unit_test_annotation/case deprecation (kubawerlos)
  • minor #​6072 Update usage doc to reflect change to PSR12 default. (hannob, keradus)
  • minor #​6084 Change: Remove __constructor() from RuleSetDescriptionInterface (niklam)
  • minor #​6085 Dx: reuse WhitespacesAnalyzer::detectIndent (kubawerlos)
  • minor #​6087 AbstractProxyFixer - more tests (SpacePossum)

v3.2.1

Compare Source

experimental release

  • Require PHP 7.2

v3.2.0

Compare Source

  • bug #​5809 FunctionsAnalyzer - fix for recognizing global functions in attributes (kubawerlos)
  • bug #​5909 NativeFunctionCasingFixer - fix for attributes and imported functions (kubawerlos)
  • bug #​5920 ClassAttributesSeparationFixer - fixes & enhancements (SpacePossum)
  • bug #​5923 TypeAlternationTransformer - fix for promoted properties (kubawerlos)
  • bug #​5938 NoAliasFunctionsFixer - remove dir -> getdir mapping (SpacePossum)
  • bug #​5941 TokensAnalyzer - isAnonymousClass bug on PHP8 (SpacePossum)
  • bug #​5942 TokensAnalyzer - isConstantInvocation PHP 8 issue (SpacePossum)
  • bug #​5943 NoUnusedImportsFixer - use in attribute (SpacePossum)
  • bug #​5955 Fixed class_attributes_separation processing class with multiple trait imports (GrahamCampbell)
  • bug #​5977 LowercaseStaticReference - SingleClassElementPerStatement - union types (SpacePossum)
  • bug #​5984 RegularCallableCallFixer must run before NativeFunctionInvocationFixer (kubawerlos)
  • bug #​5986 CurlyBraceTransformer - count T_CURLY_OPEN itself as level as well (SpacePossum)
  • bug #​5989 NoAliasFunctionsFixer - Correct mapping (weshooper)
  • bug #​6004 SwitchContinueToBreakFixer - Fix candidate check (SpacePossum)
  • bug #​6005 CommentsAnalyzer - before static call (SpacePossum)
  • bug #​6007 YodaStyleFixer - PHP8 named arguments support (liquid207)
  • bug #​6015 CommentsAnalyzer - constructor property promotion support (liquid207)
  • bug #​6020 RegularCallableCallFixer - case insensitive fixing (SpacePossum)
  • bug #​6037 PhpdocLineSpanFixer - do not crash on trait imports (SpacePossum)
  • feature #​4834 AssignNullCoalescingToCoalesceEqualFixer - introduction (SpacePossum)
  • feature #​5754 ModernizeStrposFixer - introduction (derrabus, SpacePossum, keradus)
  • feature #​5858 EmptyLoopConditionFixer - introduction (SpacePossum)
  • feature #​5967 PHP8.1 - type "never" support (SpacePossum)
  • feature #​5968 PHP8.1 - "readonly" property modifier support (SpacePossum)
  • feature #​5970 IntegerLiteralCaseFixer - introduction (SpacePossum)
  • feature #​5971 PHP8.1 - Explicit octal integer literal notation (SpacePossum)
  • feature #​5997 NoSuperfluousPhpdocTagsFixer - Add union types support (julienfalque)
  • feature #​6026 TypeIntersectionTransformer - introduction (kubawerlos, SpacePossum)
  • feature #​6031 NoSpaceAroundDoubleColonFixer - introduction (SpacePossum)
  • feature #​6047 StringLengthToEmptyFixer - introduction (SpacePossum)
  • minor #​5773 NoAlternativeSyntaxFixer - Add option to not fix non-monolithic PHP code (paulbalandan)
  • minor #​5887 Detect renamed rules in configuration resolver (shakaran)
  • minor #​5901 DX: update PHPStan (kubawerlos)
  • minor #​5906 Remove references to PHP 7.0 in tests (with updates) (kubawerlos)
  • minor #​5918 Remove PHP version specific code sample constraint when not needed (kubawerlos)
  • minor #​5924 PSR12 - ClassDefinition - space_before_parenthesis (SpacePossum)
  • minor #​5925 DX: ProjectCodeTest - fix detection by testExpectedInputOrder (keradus)
  • minor #​5926 DX: remove not needed requirements from fixtures (kubawerlos)
  • minor #​5927 Symfonyset - EmptyLoopBody (SpacePossum)
  • minor #​5928 PhpdocTo*TypeFixer - add more test cases (keradus)
  • minor #​5929 Remove not needed PHP version checks (kubawerlos)
  • minor #​5930 simplify code, more tests (SpacePossum)
  • minor #​5931 logo copyright - bump year (SpacePossum)
  • minor #​5932 Extract ControlStructureContinuationPositionFixer from BracesFixer (julienfalque)
  • minor #​5933 Consistency invalid configuration exception for test (shakaran)
  • minor #​5934 Add return types (SpacePossum)
  • minor #​5949 Removed PHP 5 exception catch (GrahamCampbell)
  • minor #​5952 ClassAttributesSeparationFixer - Re-add omitted only_if_meta option (paulbalandan)
  • minor #​5957 Keep PHPStan cache between Docker runs (julienfalque)
  • minor #​5958 Fix STDIN test when path is one level deep (julienfalque)
  • minor #​5959 SymfonySet - add EmptyLoopConditionFixer (SpacePossum)
  • minor #​5961 Remove duplicated method (julienfalque)
  • minor #​5962 DX: Add return types (kubawerlos)
  • minor #​5963 DX: extract config for special CI jobs (keradus)
  • minor #​5964 DX: use modernize_strpos (keradus)
  • minor #​5965 CI: don't try to execute jobs with Symfony:^3 (keradus)
  • minor #​5972 PHP8.1 - FirstClassCallable (SpacePossum)
  • minor #​5973 PHP8.1 - "final const" support (SpacePossum)
  • minor #​5975 Tree shake PHP8.1 MRs (SpacePossum)
  • minor #​5978 PHP8.1 - Enum (start) (SpacePossum)
  • minor #​5982 Fix test warning (SpacePossum)
  • minor #​5987 PHP8.1 - Enum (start) (SpacePossum)
  • minor #​5995 Fix link to Code Climate SPEC.md in GitlabReporter (astehlik)
  • minor #​5996 Fix URL to Doctrine Annotations documentation (astehlik)
  • minor #​6000 Prevent PHP CS Fixer from fixing PHPStan cache files (julienfalque)
  • minor #​6006 SCA/utilize PHP8.1 (SpacePossum)
  • minor #​6008 SCA (SpacePossum)
  • minor #​6010 SCA (SpacePossum)
  • minor #​6011 NoSuperfluousPhpdocTagsFixer - Remove superfluous annotation @abstract and @final (liquid207, SpacePossum)
  • minor #​6018 PhpdocLineSpan - Allow certain types to be ignored (devfrey)
  • minor #​6019 Improve test coverage (SpacePossum)
  • minor #​6021 Linter/*Exception - Tag as final (SpacePossum)
  • minor #​6023 OrderedClassElementsFixer - PHP8.1 readonly properties support (SpacePossum)
  • minor #​6027 MbStrFunctionsFixer - more details about risky (SpacePossum)
  • minor #​6028 BinaryOperatorSpacesFixer - list all operators in doc (SpacePossum)
  • minor #​6029 PhpUnitDedicateAssertFixer - add "assertStringContainsString" and "as… (SpacePossum)
  • minor #​6030 SingleSpaceAfterConstructFixer - Add switch support (SpacePossum)
  • minor #​6033 ArgumentsAnalyzerTest - add more tests (SpacePossum)
  • minor #​6034 Cleanup tests for PHP 7.0 and 7.1 (SpacePossum)
  • minor #​6035 Documentation generation split up and add list. (SpacePossum)
  • minor #​6048 Fix "can not" spelling (mvorisek)

v3.1.0

Compare Source

  • feature #​5572 PhpdocToCommentFixer - Add ignored_tags option (VincentLanglet)
  • feature #​5588 NoAliasFunctionsFixer - Add more function aliases (danog)
  • feature #​5704 ClassAttributesSeparationFixer - Introduce only_if_meta spacing option (paulbalandan)
  • feature #​5734 TypesSpacesFixer - Introduction (kubawerlos)
  • feature #​5745 EmptyLoopBodyFixer - introduction (SpacePossum, keradus)
  • feature #​5751 Extract DeclareParenthesesFixer from BracesFixer (julienfalque, keradus)
  • feature #​5877 ClassDefinitionFixer - PSR12 for anonymous class (SpacePossum)
  • minor #​5875 EmptyLoopBodyFixer - NoTrailingWhitespaceFixer - priority test (SpacePossum)
  • minor #​5914 Deprecate ClassKeywordRemoveFixer (kubawerlos)

v3.0.3

Compare Source

  • bug #​4927 PhpdocAlignFixer - fix for whitespace in type (kubawerlos)
  • bug #​5720 NoUnusedImportsFixer - Fix undetected unused imports when type mismatch (julienfalque, SpacePossum)
  • bug #​5806 DoctrineAnnotationFixer - Add template to ignored_tags (akalineskou)
  • bug #​5849 PhpdocTagTypeFixer - must not remove inlined tags within other tags (boesing)
  • bug #​5853 BracesFixer - handle alternative short foreach with if (SpacePossum)
  • bug #​5855 GlobalNamespaceImportFixer - fix for attributes imported as constants (kubawerlos)
  • bug #​5881 SelfUpdateCommand - fix link to UPGRADE docs (keradus)
  • bug #​5884 CurlyBraceTransformer - fix handling dynamic property with string with variable (kubawerlos, keradus)
  • bug #​5912 TypeAlternationTransformer - fix for "callable" type (kubawerlos)
  • bug #​5913 SingleSpaceAfterConstructFixer - improve comma handling (keradus)
  • minor #​5829 DX: Fix SCA with PHPMD (paulbalandan)
  • minor #​5838 PHP7 - use spaceship (SpacePossum, keradus)
  • minor #​5848 Docs: update PhpStorm integration link (keradus)
  • minor #​5856 Add AttributeAnalyzer (kubawerlos)
  • minor #​5857 DX: PHPMD - exclude fixtures (keradus)
  • minor #​5859 Various fixes (kubawerlos)
  • minor #​5864 DX: update dev tools (kubawerlos)
  • minor #​5876 AttributeTransformerTest - add more tests (SpacePossum)
  • minor #​5879 Update UPGRADE-v3.md adding relative links (shakaran, keradus)
  • minor #​5882 Docs: don't use v2 for installation example (keradus)
  • minor #​5883 Docs: typo (brianteeman, keradus)
  • minor #​5890 DX: use PHP 8.1 polyfill (keradus)
  • minor #​5902 Remove references to PHP 7.0 in tests (only removing lines) (kubawerlos)
  • minor #​5905 DX: Use "yield from" in tests (kubawerlos, keradus)
  • minor #​5917 Use @PHP71Migration rules (kubawerlos, keradus)

v3.0.2

Compare Source

  • bug #​5816 FullyQualifiedStrictTypesFixer - fix for union types (kubawerlos, keradus)
  • bug #​5835 PhpdocTypesOrderFixer: fix for array shapes (kubawerlos)
  • bug #​5837 SingleImportPerStatementFixer - fix const and function imports (SpacePossum)
  • bug #​5844 PhpdocTypesOrderFixer: handle callable() type (Slamdunk)
  • minor #​5839 DX: automate checking 7.0 types on project itself (keradus)
  • minor #​5840 DX: drop v2 compatible config in project itself (keradus)

v3.0.1

Compare Source

  • bug #​5395 PhpdocTagTypeFixer: Do not modify array shapes (localheinz, julienfalque)
  • bug #​5678 UseArrowFunctionsFixer - fix for return without value (kubawerlos)
  • bug #​5679 PhpUnitNamespacedFixer - do not try to fix constant usage (kubawerlos)
  • bug #​5681 RegularCallableCallFixer - fix for function name with escaped slash (kubawerlos)
  • bug #​5687 FinalInternalClassFixer - fix for annotation with space after "@​" (kubawerlos)
  • bug #​5688 ArrayIndentationFixer - fix for really long arrays (kubawerlos)
  • bug #​5690 PhpUnitNoExpectationAnnotationFixer - fix "expectedException" annotation with message below (kubawerlos)
  • bug #​5693 YodaStyleFixer - fix for assignment operators (kubawerlos)
  • bug #​5697 StrictParamFixer - fix for method definition (kubawerlos)
  • bug #​5702 CommentToPhpdocFixer - fix for single line comments starting with more than 2 slashes (kubawerlos)
  • bug #​5703 DateTimeImmutableFixer - fix for method definition (kubawerlos)
  • bug #​5718 VoidReturnFixer - do not break syntax with magic methods (kubawerlos)
  • bug #​5727 SingleSpaceAfterConstructFixer - Add support for namespace (julienfalque)
  • bug #​5730 Fix transforming deprecations into exceptions (julienfalque)
  • bug #​5738 TokensAnalyzer - fix for union types (kubawerlos)
  • bug #​5741 Fix constant invocation detection cases (kubawerlos)
  • bug #​5769 Fix priority between phpdoc_to_property_type and no_superfluous_phpdoc_tags (julienfalque)
  • bug #​5774 FunctionsAnalyzer::isTheSameClassCall - fix for $this with double colon following (kubawerlos)
  • bug #​5779 SingleLineThrowFixer - fix for throw in match (kubawerlos)
  • bug #​5781 ClassDefinition - fix for anonymous class with trailing comma (kubawerlos)
  • bug #​5783 StaticLambdaFixer - consider parent:: as a possible reference to $this (fancyweb)
  • bug #​5791 NoBlankLinesAfterPhpdoc - Add T_NAMESPACE in array of forbidden successors (paulbalandan)
  • bug #​5799 TypeAlternationTransformer - fix for multiple function parameters (kubawerlos)
  • bug #​5804 NoBreakCommentFixer - fix for "default" in "match" (kubawerlos)
  • bug #​5805 SingleLineCommentStyleFixer - run after HeaderCommentFixer (kubawerlos)
  • bug #​5817 NativeFunctionTypeDeclarationCasingFixer - fix for union types (kubawerlos)
  • bug #​5823 YodaStyleFixer - yield support (SpacePossum)
  • minor #​4914 Improve PHPDoc types support (julienfalque, keradus)
  • minor #​5592 Fix checking for default config used in rule sets (kubawerlos)
  • minor #​5675 Docs: extend Upgrade Guide (keradus)
  • minor #​5680 DX: benchmark.sh - ensure deps are updated to enable script working across less-similar branches (keradus)
  • minor #​5689 Calculate code coverage on PHP 8 (kubawerlos)
  • minor #​5694 DX: fail on risky tests (kubawerlos)
  • minor #​5695 Utils - save only unique deprecations to avoid memory issues (PetrHeinz)
  • minor #​5710 [typo] add correct backquotes (PhilETaylor)
  • minor #​5711 Fix doc, "run-in" show-progress option is no longer present (mvorisek)
  • minor #​5713 Upgrade-Guide: fix typo (staabm)
  • minor #​5717 Run migration rules on PHP 8 (kubawerlos, keradus)
  • minor #​5721 Fix reStructuredText markup (julienfalque)
  • minor #​5725 Update LICENSE (exussum12)
  • minor #​5731 CI - Fix checkbashisms installation (julienfalque)
  • minor #​5736 Remove references to PHP 5.6 (kubawerlos, keradus)
  • minor #​5739 DX: more typehinting (keradus)
  • minor #​5740 DX: more type-related docblocks (keradus)
  • minor #​5746 Config - Improve deprecation message with details (SpacePossum)
  • minor #​5747 RandomApiMigrationFixer - better docs and better "random_int" support (SpacePossum)
  • minor #​5748 Updated the link to netbeans plugins page (cyberguroo)
  • minor #​5750 Test all const are in uppercase (SpacePossum)
  • minor #​5752 NoNullPropertyInitializationFixer - fix static properties as well (HypeMC)
  • minor #​5756 Fix rule sets descriptions (kubawerlos)
  • minor #​5761 Fix links in custom rules documentation (julienfalque)
  • minor #​5771 doc(config): change set's name (Kocal)
  • minor #​5777 DX: update PHPStan (kubawerlos)
  • minor #​5789 DX: update PHPStan (kubawerlos)
  • minor #​5808 Update PHPStan to 0.12.92 (kubawerlos)
  • minor #​5813 Docs: point to v3 in installation description (Jimbolino)
  • minor #​5824 Deprecate v2 (keradus)
  • minor #​5825 DX: update checkbashisms to v2.21.3 (keradus)
  • minor #​5826 SCA: check both composer files (keradus)
  • minor #​5827 ClassAttributesSeparationFixer - Add trait_import support (SpacePossum)
  • minor #​5831 DX: fix SCA violations (keradus)

v3.0.0

Compare Source

  • bug #​5164 Differ - surround file name with double quotes if it contains spacing. (SpacePossum)
  • bug #​5560 PSR2: require visibility only for properties and methods (kubawerlos)
  • bug #​5576 ClassAttributesSeparationFixer: do not allow using v2 config (kubawerlos)
  • feature #​4979 Pass file to differ (paulhenri-l, SpacePossum)
  • minor #​3374 show-progress option: drop run-in and estimating, rename estimating-max to dots (keradus)
  • minor #​3375 Fixers - stop exposing extra properties/consts (keradus)
  • minor #​3376 Tokenizer - remove deprecations and legacy mode (keradus)
  • minor #​3377 rules - change default options (keradus)
  • minor #​3378 SKIP_LINT_TEST_CASES - drop env (keradus)
  • minor #​3379 MethodArgumentSpaceFixer - fixSpace is now private (keradus)
  • minor #​3380 rules - drop rootless configurations (keradus)
  • minor #​3381 rules - drop deprecated configurations (keradus)
  • minor #​3382 DefinedFixerInterface - incorporate into FixerInterface (keradus)
  • minor #​3383 FixerDefinitionInterface - drop getConfigurationDescription and getDefaultConfiguration (keradus)
  • minor #​3384 diff-format option: drop sbd diff, use udiffer by default, drop SebastianBergmannDiffer and SebastianBergmannShortDiffer classes (keradus)
  • minor #​3385 ConfigurableFixerInterface::configure - param is now not nullable and not optional (keradus)
  • minor #​3386 ConfigurationDefinitionFixerInterface - incorporate into ConfigurableFixerInterface (keradus)
  • minor #​3387 FixCommand - forbid passing 'config' and 'rules' options together (keradus)
  • minor #​3388 Remove Helpers (keradus)
  • minor #​3389 AccessibleObject - drop class (keradus)
  • minor #​3390 Drop deprecated rules: blank_line_before_return, hash_to_slash_comment, method_separation, no_extra_consecutive_blank_lines, no_multiline_whitespace_before_semicolons and pre_increment (keradus)
  • minor #​3456 AutoReview - drop references to removed rule (keradus)
  • minor #​3659 use php-cs-fixer/diff ^2.0 (SpacePossum)
  • minor #​3681 CiIntegrationTest - fix incompatibility from 2.x line (keradus)
  • minor #​3740 NoUnusedImportsFixer - remove SF exception (SpacePossum)
  • minor #​3771 UX: always set error_reporting in entry file, not Application (keradus)
  • minor #​3922 Make some more classes final (ntzm, SpacePossum)
  • minor #​3995 Change default config of native_function_invocation (dunglas, SpacePossum)
  • minor #​4432 DX: remove empty sets from RuleSet (kubawerlos)
  • minor #​4489 Fix ruleset @​PHPUnit50Migration:risky (kubawerlos)
  • minor #​4620 DX: cleanup additional, not used parameters (keradus)
  • minor #​4666 Remove deprecated rules: lowercase_constants, php_unit_ordered_covers, silenced_deprecation_error (keradus)
  • minor #​4697 Remove deprecated no_short_echo_tag rule (julienfalque)
  • minor #​4851 fix phpstan on 3.0 (SpacePossum)
  • minor #​4901 Fix SCA (SpacePossum)
  • minor #​5069 Fixed failing tests on 3.0 due to unused import after merge (GrahamCampbell)
  • minor #​5096 NativeFunctionInvocationFixer - BacktickToShellExecFixer - fix integration test (SpacePossum)
  • minor #​5171 Fix test (SpacePossum)
  • minor #​5245 Fix CI for 3.0 line (keradus)
  • minor #​5351 clean ups (SpacePossum)
  • minor #​5364 DX: Do not display runtime twice on 3.0 line (keradus)
  • minor #​5412 3.0 - cleanup (SpacePossum, keradus)
  • minor #​5417 Further BC cleanup for 3.0 (keradus)
  • minor #​5418 Drop src/Test namespace (keradus)
  • minor #​5436 Drop mapping of strings to boolean option other than yes/no (keradus)
  • minor #​5440 Change default ruleset to PSR-12 (keradus)
  • minor #​5477 Drop diff-format (keradus)
  • minor #​5478 Docs: Cleanup UPGRADE markdown files (keradus)
  • minor #​5479 ArraySyntaxFixer, ListSyntaxFixer - change default syntax to short (keradus)
  • minor #​5480 Tokens::findBlockEnd - drop deprecated argument (keradus)
  • minor #​5485 ClassAttributesSeparationFixer - drop deprecated flat list configuration (keradus)
  • minor #​5486 CI: drop unused env variables (keradus)
  • minor #​5488 Do not distribute documentation (szepeviktor)
  • minor #​5513 DX: Tokens::warnPhp8SplFixerArrayChange - drop unused method (keradus)
  • minor #​5520 DX: Drop IsIdenticalConstraint (keradus)
  • minor #​5521 DX: apply rules configuration cleanups for PHP 7.1+ (keradus)
  • minor #​5524 DX: drop support of very old deps (keradus)
  • minor #​5525 Drop phpunit-legacy-adapter (keradus)
  • minor #​5527 Bump required PHP to 7.1 (keradus)
  • minor #​5529 DX: bump required PHPUnit to v7+ (keradus)
  • minor #​5532 Apply PHP 7.1 typing (keradus)
  • minor #​5541 RuleSet - disallow null usage to disable the rule (keradus)
  • minor #​5555 DX: further typing improvements (keradus)
  • minor #​5562 Fix table row rendering for default values of array_syntax and list_syntax (derrabus)
  • minor #​5608 DX: new cache filename (keradus)
  • minor #​5609 Forbid old config filename usage (keradus)
  • minor #​5638 DX: remove Utils::calculateBitmask (keradus)
  • minor #​5641 DX: use constants for PHPUnit version on 3.0 line (keradus)
  • minor #​5643 FixCommand - simplify help (keradus)
  • minor #​5644 Token::toJson() - remove parameter (keradus)
  • minor #​5645 DX: YodaStyleFixerTest - fix CI (keradus)
  • minor #​5649 DX: YodaStyleFixerTest - fix 8.0 compat (keradus)
  • minor #​5650 DX: FixCommand - drop outdated/duplicated docs (keradus)
  • minor #​5656 DX: mark some constants as internal or private (keradus)
  • minor #​5657 DX: convert some properties to constants (keradus)
  • minor #​5669 Remove TrailingCommaInMultilineArrayFixer (kubawerlos, keradus)

Configuration

📅 Schedule: Branch creation - Monday through Friday ( * * * * 1-5 ) in timezone Europe/London, Automerge - At any time (no schedule defined).

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

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

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


  • [ ] If you want to rebase/retry this MR, check this box

This MR has been generated by Renovate Bot.

Edited by uis-devops-renovatebot

Merge request reports

Loading