PHPCSStandards/PHP_CodeSniffer (squizlabs/php_codesniffer)
### [`v3.10.2`](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/blob/HEAD/CHANGELOG.md#3102---2024-07-22)
[Compare Source](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/compare/3.10.1...3.10.2)
##### Changed
- The following sniff(s) have received efficiency improvements:
- Generic.Functions.FunctionCallArgumentSpacing
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch.
- The array format of the information passed to the `Reports::generateFileReport()` method is now documented in the Reports interface. [#523]
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch.
- Various housekeeping, including improvements to the tests and documentation.
- Thanks to \[Bill Ruddock]\[[@biinari](https://togithub.com/biinari)], \[Dan Wallis]\[[@fredden](https://togithub.com/fredden)], \[Klaus Purer]\[[@klausi](https://togithub.com/klausi)], \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] and \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for their contributions.
##### Fixed
- Fixed bug [#513] : Generic.Functions.FunctionCallArgumentSpacing did not ignore the body of a match expressions passed as a function argument, which could lead to false positives.
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch
- Fixed bug [#533] : Generic.WhiteSpace.DisallowTabIndent: tab indentation for heredoc/nowdoc closers will no longer be auto-fixed to prevent parse errors. The issue will still be reported.
- The error code for heredoc/nowdoc indentation using tabs has been made more specific - `TabsUsedHeredocCloser` - to allow for selectively excluding the indentation check for heredoc/nowdoc closers.
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch
- Fixed bug [#534] : Generic.WhiteSpace.DisallowSpaceIndent did not report on space indentation for PHP 7.3 flexible heredoc/nowdoc closers.
- Closers using space indentation will be reported with a dedicated error code: `SpacesUsedHeredocCloser`.
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch
- Fixed bug [#537] : Squiz.PHP.DisallowMultipleAssignments false positive for list assignments at the start of a new PHP block after an embedded PHP statement.
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch
- Fixed bug [#551] : Squiz.PHP.DisallowMultipleAssignments prevent false positive for function parameters during live coding.
- Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patch.
- Fixed bug [#554] : Generic.CodeAnalysis.UselessOverridingMethod edge case false negative when the call to the parent method would end on a PHP close tag.
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch
- Fixed bug [#555] : Squiz.Classes.SelfMemberReference edge case false negative when the namespace declaration would end on a PHP close tag.
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch
[#513]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/513
[#523]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/523
[#533]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/533
[#534]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/534
[#537]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/537
[#551]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/551
[#554]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/554
[#555]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/555
### [`v3.10.1`](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/blob/HEAD/CHANGELOG.md#3101---2024-05-22)
[Compare Source](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/compare/3.10.0...3.10.1)
##### Added
- Documentation for the following sniffs:
- Generic.Commenting.DocComment
- Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patch.
##### Changed
- The following have received efficiency improvements:
- Type handling in the PHP Tokenizer
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch.
- Various housekeeping, including improvements to the tests and documentation.
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for their contributions.
##### Fixed
- Fixed bug [#110], [#437], [#475]: `File::findStartOfStatement()`: the start of statement/expression determination for tokens in parentheses/short array brackets/others scopes, nested within match expressions, was incorrect in most cases.
The trickle down effect of the bug fixes made to the `File::findStartOfStatement()` method, is that the Generic.WhiteSpace.ScopeIndent and the PEAR.WhiteSpace.ScopeIndent sniffs should now be able to correctly determine and fix the indent for match expressions containing nested expressions.
These fixes also fix an issue with the `Squiz.Arrays.ArrayDeclaration` sniff and possibly other, unreported bugs.
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch
- Fixed bug [#504]: The tokenizer could inadvertently mistake the last parameter in a function call using named arguments for a DNF type.
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch
- Fixed bug [#508]: Tokenizer/PHP: extra hardening against handling parse errors in the type handling layer.
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch
[#110]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/110
[#437]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/437
[#475]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/475
[#504]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/504
[#508]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/508
### [`v3.10.0`](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/blob/HEAD/CHANGELOG.md#3100---2024-05-20)
[Compare Source](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/compare/3.9.2...3.10.0)
##### Added
- Tokenizer support for PHP 8.2 Disjunctive Normal Form (DNF) types. [#3731][sq-3731], [#387], [#461]
- Includes new `T_TYPE_OPEN_PARENTHESIS` and `T_TYPE_CLOSE_PARENTHESIS` tokens to represent the parentheses in DNF types.
- These new tokens, like other parentheses, will have the `parenthesis_opener` and `parenthesis_closer` token array indexes set and the tokens between them will have the `nested_parenthesis` index.
- The `File::getMethodProperties()`, `File::getMethodParameters()` and `File::getMemberProperties()` methods now all support DNF types. [#471], [#472], [#473]
- Additionally, the following sniff has been updated to support DNF types:
- Generic.PHP.LowerCaseType [#478]
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patches.
- Documentation for the following sniffs:
- Squiz.WhiteSpace.FunctionClosingBraceSpace
- Thanks to \[Przemek Hernik]\[[@przemekhernik](https://togithub.com/przemekhernik)] for the patch.
##### Changed
- The help screens have received a face-lift for improved usability and readability. [#447]
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch and thanks to \[Colin Stewart]\[[@costdev](https://togithub.com/costdev)], \[Gary Jones]\[[@GaryJones](https://togithub.com/GaryJones)] and \[[@mbomb007](https://togithub.com/mbomb007)] for reviewing.
- The Squiz.Commenting.ClosingDeclarationComment sniff will now also examine and flag closing comments for traits. [#442]
- Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patch.
- The following sniff(s) have efficiency improvements:
- Generic.Arrays.ArrayIndent
- Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patch.
- The autoloader will now always return a boolean value indicating whether it has loaded a class or not. [#479]
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch.
- Various housekeeping, including improvements to the tests and documentation.
- Thanks to \[Dan Wallis]\[[@fredden](https://togithub.com/fredden)], \[Danny van der Sluijs]\[[@DannyvdSluijs](https://togithub.com/DannyvdSluijs)], \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] and \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for their contributions.
##### Fixed
- Fixed bug [#466] : Generic.Functions.CallTimePassByReference was not flagging call-time pass-by-reference in class instantiations using the self/parent/static keywords.
- Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patch.
- Fixed bug [#494] : edge case bug in tokenization of an empty block comment.
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch
- Fixed bug [#494] : edge case bug in tokenization of an empty single-line DocBlock.
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch
- Fixed bug [#499] : Generic.ControlStructures.InlineControlStructure now handles statements with a comment between `else` and `if` correctly.
- Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patch.
[sq-3731]: https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3731
[#387]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/387
[#442]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/442
[#447]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/447
[#461]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/461
[#466]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/466
[#471]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/471
[#472]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/472
[#473]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/473
[#478]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/478
[#479]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/479
[#494]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/494
[#499]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/499
### [`v3.9.2`](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/blob/HEAD/CHANGELOG.md#392---2024-04-24)
[Compare Source](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/compare/3.9.1...3.9.2)
##### Changed
- The Generic.ControlStructures.DisallowYodaConditions sniff no longer listens for the null coalesce operator. [#458]
- Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patch.
- Various housekeeping, including improvements to the tests and documentation.
- Thanks to \[Dan Wallis]\[[@fredden](https://togithub.com/fredden)], \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] and \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for their contributions.
##### Fixed
- Fixed bug [#381] : Squiz.Commenting.ClosingDeclarationComment could throw the wrong error when the close brace being examined is at the very end of a file.
- Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patch.
- Fixed bug [#385] : Generic.CodeAnalysis.JumbledIncrementer improved handling of parse errors/live coding.
- Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patch.
- Fixed bug [#394] : Generic.Functions.CallTimePassByReference was not flagging call-time pass-by-reference in anonymous class instantiations
- Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patch.
- Fixed bug [#420] : PEAR.Functions.FunctionDeclaration could run into a blocking PHP notice while fixing code containing a parse error.
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch
- Fixed bug [#421] : File::getMethodProperties() small performance improvement & more defensive coding.
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch
- Fixed bug [#423] : PEAR.WhiteSpace.ScopeClosingBrace would have a fixer conflict with itself when a close tag was preceded by non-empty inline HTML.
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch
- Fixed bug [#424] : PSR2.Classes.ClassDeclaration using namespace relative interface names in the extends/implements part of a class declaration would lead to a fixer conflict.
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch
- Fixed bug [#427] : Squiz.Operators.OperatorSpacing would have a fixer conflict with itself when an operator was preceeded by a new line and the previous line ended in a comment.
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch
- Fixed bug [#430] : Squiz.ControlStructures.ForLoopDeclaration: fixed potential undefined array index notice
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch
- Fixed bug [#431] : PSR2.Classes.ClassDeclaration will no longer try to auto-fix multi-line interface implements statements if these are interlaced with comments on their own line. This prevents a potential fixer conflict.
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch
- Fixed bug [#453] : Arrow function tokenization was broken when the return type was a stand-alone `true` or `false`; or contained `true` or `false` as part of a union type.
- Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch
##### Other
- [ESLint 9.0] has been released and changes the supported configuration file format.
The (deprecated) `Generic.Debug.ESLint` sniff only supports the "old" configuration file formats and when using the sniff to run ESLint, the `ESLINT_USE_FLAT_CONFIG=false` environment variable will need to be set when using ESLint >= 9.0.
For more information, see [#436].
[ESLint 9.0]: https://eslint.org/blog/2024/04/eslint-v9.0.0-released/#flat-config-is-now-the-default-and-has-some-changes
[#381]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/381
[#385]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/385
[#394]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/394
[#420]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/420
[#421]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/421
[#423]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/423
[#424]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/424
[#427]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/427
[#430]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/430
[#431]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/431
[#436]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/436
[#453]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/453
[#458]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/458
Configuration
📅 Schedule: Branch creation - "before 4am on Monday" in timezone America/Chicago, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
3.9.1
->3.10.2
Release Notes
PHPCSStandards/PHP_CodeSniffer (squizlabs/php_codesniffer)
### [`v3.10.2`](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/blob/HEAD/CHANGELOG.md#3102---2024-07-22) [Compare Source](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/compare/3.10.1...3.10.2) ##### Changed - The following sniff(s) have received efficiency improvements: - Generic.Functions.FunctionCallArgumentSpacing - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch. - The array format of the information passed to the `Reports::generateFileReport()` method is now documented in the Reports interface. [#523] - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch. - Various housekeeping, including improvements to the tests and documentation. - Thanks to \[Bill Ruddock]\[[@biinari](https://togithub.com/biinari)], \[Dan Wallis]\[[@fredden](https://togithub.com/fredden)], \[Klaus Purer]\[[@klausi](https://togithub.com/klausi)], \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] and \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for their contributions. ##### Fixed - Fixed bug [#513] : Generic.Functions.FunctionCallArgumentSpacing did not ignore the body of a match expressions passed as a function argument, which could lead to false positives. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#533] : Generic.WhiteSpace.DisallowTabIndent: tab indentation for heredoc/nowdoc closers will no longer be auto-fixed to prevent parse errors. The issue will still be reported. - The error code for heredoc/nowdoc indentation using tabs has been made more specific - `TabsUsedHeredocCloser` - to allow for selectively excluding the indentation check for heredoc/nowdoc closers. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#534] : Generic.WhiteSpace.DisallowSpaceIndent did not report on space indentation for PHP 7.3 flexible heredoc/nowdoc closers. - Closers using space indentation will be reported with a dedicated error code: `SpacesUsedHeredocCloser`. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#537] : Squiz.PHP.DisallowMultipleAssignments false positive for list assignments at the start of a new PHP block after an embedded PHP statement. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#551] : Squiz.PHP.DisallowMultipleAssignments prevent false positive for function parameters during live coding. - Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patch. - Fixed bug [#554] : Generic.CodeAnalysis.UselessOverridingMethod edge case false negative when the call to the parent method would end on a PHP close tag. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#555] : Squiz.Classes.SelfMemberReference edge case false negative when the namespace declaration would end on a PHP close tag. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch [#513]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/513 [#523]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/523 [#533]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/533 [#534]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/534 [#537]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/537 [#551]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/551 [#554]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/554 [#555]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/555 ### [`v3.10.1`](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/blob/HEAD/CHANGELOG.md#3101---2024-05-22) [Compare Source](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/compare/3.10.0...3.10.1) ##### Added - Documentation for the following sniffs: - Generic.Commenting.DocComment - Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patch. ##### Changed - The following have received efficiency improvements: - Type handling in the PHP Tokenizer - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch. - Various housekeeping, including improvements to the tests and documentation. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for their contributions. ##### Fixed - Fixed bug [#110], [#437], [#475]: `File::findStartOfStatement()`: the start of statement/expression determination for tokens in parentheses/short array brackets/others scopes, nested within match expressions, was incorrect in most cases. The trickle down effect of the bug fixes made to the `File::findStartOfStatement()` method, is that the Generic.WhiteSpace.ScopeIndent and the PEAR.WhiteSpace.ScopeIndent sniffs should now be able to correctly determine and fix the indent for match expressions containing nested expressions. These fixes also fix an issue with the `Squiz.Arrays.ArrayDeclaration` sniff and possibly other, unreported bugs. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#504]: The tokenizer could inadvertently mistake the last parameter in a function call using named arguments for a DNF type. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#508]: Tokenizer/PHP: extra hardening against handling parse errors in the type handling layer. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch [#110]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/110 [#437]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/437 [#475]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/475 [#504]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/504 [#508]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/508 ### [`v3.10.0`](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/blob/HEAD/CHANGELOG.md#3100---2024-05-20) [Compare Source](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/compare/3.9.2...3.10.0) ##### Added - Tokenizer support for PHP 8.2 Disjunctive Normal Form (DNF) types. [#3731][sq-3731], [#387], [#461] - Includes new `T_TYPE_OPEN_PARENTHESIS` and `T_TYPE_CLOSE_PARENTHESIS` tokens to represent the parentheses in DNF types. - These new tokens, like other parentheses, will have the `parenthesis_opener` and `parenthesis_closer` token array indexes set and the tokens between them will have the `nested_parenthesis` index. - The `File::getMethodProperties()`, `File::getMethodParameters()` and `File::getMemberProperties()` methods now all support DNF types. [#471], [#472], [#473] - Additionally, the following sniff has been updated to support DNF types: - Generic.PHP.LowerCaseType [#478] - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patches. - Documentation for the following sniffs: - Squiz.WhiteSpace.FunctionClosingBraceSpace - Thanks to \[Przemek Hernik]\[[@przemekhernik](https://togithub.com/przemekhernik)] for the patch. ##### Changed - The help screens have received a face-lift for improved usability and readability. [#447] - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch and thanks to \[Colin Stewart]\[[@costdev](https://togithub.com/costdev)], \[Gary Jones]\[[@GaryJones](https://togithub.com/GaryJones)] and \[[@mbomb007](https://togithub.com/mbomb007)] for reviewing. - The Squiz.Commenting.ClosingDeclarationComment sniff will now also examine and flag closing comments for traits. [#442] - Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patch. - The following sniff(s) have efficiency improvements: - Generic.Arrays.ArrayIndent - Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patch. - The autoloader will now always return a boolean value indicating whether it has loaded a class or not. [#479] - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch. - Various housekeeping, including improvements to the tests and documentation. - Thanks to \[Dan Wallis]\[[@fredden](https://togithub.com/fredden)], \[Danny van der Sluijs]\[[@DannyvdSluijs](https://togithub.com/DannyvdSluijs)], \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] and \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for their contributions. ##### Fixed - Fixed bug [#466] : Generic.Functions.CallTimePassByReference was not flagging call-time pass-by-reference in class instantiations using the self/parent/static keywords. - Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patch. - Fixed bug [#494] : edge case bug in tokenization of an empty block comment. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#494] : edge case bug in tokenization of an empty single-line DocBlock. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#499] : Generic.ControlStructures.InlineControlStructure now handles statements with a comment between `else` and `if` correctly. - Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patch. [sq-3731]: https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3731 [#387]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/387 [#442]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/442 [#447]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/447 [#461]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/461 [#466]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/466 [#471]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/471 [#472]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/472 [#473]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/473 [#478]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/478 [#479]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/479 [#494]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/494 [#499]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/499 ### [`v3.9.2`](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/blob/HEAD/CHANGELOG.md#392---2024-04-24) [Compare Source](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/compare/3.9.1...3.9.2) ##### Changed - The Generic.ControlStructures.DisallowYodaConditions sniff no longer listens for the null coalesce operator. [#458] - Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patch. - Various housekeeping, including improvements to the tests and documentation. - Thanks to \[Dan Wallis]\[[@fredden](https://togithub.com/fredden)], \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] and \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for their contributions. ##### Fixed - Fixed bug [#381] : Squiz.Commenting.ClosingDeclarationComment could throw the wrong error when the close brace being examined is at the very end of a file. - Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patch. - Fixed bug [#385] : Generic.CodeAnalysis.JumbledIncrementer improved handling of parse errors/live coding. - Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patch. - Fixed bug [#394] : Generic.Functions.CallTimePassByReference was not flagging call-time pass-by-reference in anonymous class instantiations - Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patch. - Fixed bug [#420] : PEAR.Functions.FunctionDeclaration could run into a blocking PHP notice while fixing code containing a parse error. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#421] : File::getMethodProperties() small performance improvement & more defensive coding. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#423] : PEAR.WhiteSpace.ScopeClosingBrace would have a fixer conflict with itself when a close tag was preceded by non-empty inline HTML. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#424] : PSR2.Classes.ClassDeclaration using namespace relative interface names in the extends/implements part of a class declaration would lead to a fixer conflict. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#427] : Squiz.Operators.OperatorSpacing would have a fixer conflict with itself when an operator was preceeded by a new line and the previous line ended in a comment. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#430] : Squiz.ControlStructures.ForLoopDeclaration: fixed potential undefined array index notice - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#431] : PSR2.Classes.ClassDeclaration will no longer try to auto-fix multi-line interface implements statements if these are interlaced with comments on their own line. This prevents a potential fixer conflict. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#453] : Arrow function tokenization was broken when the return type was a stand-alone `true` or `false`; or contained `true` or `false` as part of a union type. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch ##### Other - [ESLint 9.0] has been released and changes the supported configuration file format. The (deprecated) `Generic.Debug.ESLint` sniff only supports the "old" configuration file formats and when using the sniff to run ESLint, the `ESLINT_USE_FLAT_CONFIG=false` environment variable will need to be set when using ESLint >= 9.0. For more information, see [#436]. [ESLint 9.0]: https://eslint.org/blog/2024/04/eslint-v9.0.0-released/#flat-config-is-now-the-default-and-has-some-changes [#381]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/381 [#385]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/385 [#394]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/394 [#420]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/420 [#421]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/421 [#423]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/423 [#424]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/424 [#427]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/427 [#430]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/430 [#431]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/431 [#436]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/436 [#453]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/453 [#458]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/458Configuration
📅 Schedule: Branch creation - "before 4am on Monday" in timezone America/Chicago, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.