Open renovate[bot] opened 4 years ago
Kudos, SonarCloud Quality Gate passed!
0 Bugs
0 Vulnerabilities (and 0 Security Hotspots to review)
0 Code Smells
Kudos, SonarCloud Quality Gate passed!
Kudos, SonarCloud Quality Gate passed!
0 Bugs
0 Vulnerabilities
0 Security Hotspots
0 Code Smells
No Coverage information
0.0% Duplication
Kudos, SonarCloud Quality Gate passed!
0 Bugs
0 Vulnerabilities
0 Security Hotspots
0 Code Smells
No Coverage information
0.0% Duplication
Kudos, SonarCloud Quality Gate passed!
0 Bugs
0 Vulnerabilities
0 Security Hotspots
0 Code Smells
No Coverage information
0.0% Duplication
Kudos, SonarCloud Quality Gate passed!
0 Bugs
0 Vulnerabilities
0 Security Hotspots
0 Code Smells
No Coverage information
0.0% Duplication
Kudos, SonarCloud Quality Gate passed!
0 Bugs
0 Vulnerabilities
0 Security Hotspots
0 Code Smells
No Coverage information
0.0% Duplication
Issues
0 New issues
Measures
0 Security Hotspots
No data about Coverage
0.0% Duplication on New Code
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠️ Warning: custom changes will be lost.
Issues
0 New issues
0 Accepted issues
Measures
0 Security Hotspots
No data about Coverage
0.0% Duplication on New Code
This PR contains the following updates:
3.5.2
->3.9.2
Release Notes
PHPCSStandards/PHP_CodeSniffer (squizlabs/php_codesniffer)
### [`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 ### [`v3.9.1`](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/blob/HEAD/CHANGELOG.md#391---2024-03-31) [Compare Source](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/compare/3.9.0...3.9.1) ##### Added - Documentation for the following sniffs: - Generic.PHP.RequireStrictTypes - Squiz.WhiteSpace.MemberVarSpacing - Squiz.WhiteSpace.ScopeClosingBrace - Squiz.WhiteSpace.SuperfluousWhitespace - Thanks to \[Jay McPartland]\[[@jonmcp](https://togithub.com/jonmcp)] and \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patches. ##### Changed - The following sniffs have received performance related improvements: - Generic.CodeAnalysis.UselessOverridingMethod - Generic.Files.ByteOrderMark - Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patches. - Performance improvement for the "Diff" report. Should be most notable for Windows users. [#355] - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch. - The test suite has received some performance improvements. Should be most notable contributors using Windows. [#351] - External standards with sniff tests using the PHP_CodeSniffer native test framework will also benefit from these changes. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch. - Various housekeeping, including improvements to the tests and documentation. - Thanks to \[Jay McPartland]\[[@jonmcp](https://togithub.com/jonmcp)], \[João Pedro Oliveira]\[[@jpoliveira08](https://togithub.com/jpoliveira08)], \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] and \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for their contributions. ##### Fixed - Fixed bug [#289] : Squiz.WhiteSpace.OperatorSpacing and PSR12.Operators.OperatorSpacing : improved fixer conflict protection by more strenuously avoiding handling operators in declare statements. - Thanks to \[Dan Wallis]\[[@fredden](https://togithub.com/fredden)] for the patch. - Fixed bug [#366] : Generic.CodeAnalysis.UselessOverridingMethod : prevent false negative when the declared method name and the called method name do not use the same case. - Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patch. - Fixed bug [#368] : Squiz.Arrays.ArrayDeclaration fixer did not handle static closures correctly when moving array items to their own line. - Thanks to \[Michał Bundyra]\[[@michalbundyra](https://togithub.com/michalbundyra)] for the patch. - Fixed bug [#404] : Test framework : fixed PHP 8.4 deprecation notice. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch [#289]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/289 [#351]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/351 [#355]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/355 [#366]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/366 [#368]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/368 [#404]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/404 ### [`v3.9.0`](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/blob/HEAD/CHANGELOG.md#390---2024-02-16) [Compare Source](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/compare/3.8.1...3.9.0) ##### Added - Tokenizer support for PHP 8.3 typed class constants. [#321] - Additionally, the following sniffs have been updated to support typed class constants: - Generic.NamingConventions.UpperCaseConstantName [#332] - Generic.PHP.LowerCaseConstant [#330] - Generic.PHP.LowerCaseType [#331] - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patches - Tokenizer support for PHP 8.3 readonly anonymous classes. [#309] - Additionally, the following sniffs have been updated to support readonly anonymous classes: - PSR12.Classes.ClassInstantiation [#324] - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patches - New `PHP_CodeSniffer\Sniffs\DeprecatedSniff` interface to allow for marking a sniff as deprecated. [#281] - If a ruleset uses deprecated sniffs, deprecation notices will be shown to the end-user before the scan starts. When running in `-q` (quiet) mode, the deprecation notices will be hidden. - Deprecated sniffs will still run and using them will have no impact on the exit code for a scan. - In ruleset "explain"-mode (`-e`) an asterix `*` will show next to deprecated sniffs. - Sniff maintainers are advised to read through the PR description for full details on how to use this feature for their own (deprecated) sniffs. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - New `Generic.CodeAnalysis.RequireExplicitBooleanOperatorPrecedence` sniff. [#197] - Forbid mixing different binary boolean operators within a single expression without making precedence clear using parentheses - Thanks to \[Tim Düsterhus]\[[@TimWolla](https://togithub.com/TimWolla)] for the contribution - Squiz.PHP.EmbeddedPhp : the sniff will now also examine the formatting of embedded PHP statements using short open echo tags. [#27] - Includes a new `ShortOpenEchoNoSemicolon` errorcode to allow for selectively ignoring missing semicolons in single line embedded PHP snippets within short open echo tags. - The other error codes are the same and do not distinguish between what type of open tag was used. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Documentation for the following sniffs: - Generic.WhiteSpace.IncrementDecrementSpacing - PSR12.ControlStructures.ControlStructureSpacing - PSR12.Files.ImportStatement - PSR12.Functions.ReturnTypeDeclaration - PSR12.Properties.ConstantVisibility - Thanks to \[Denis Žoljom]\[[@dingo-d](https://togithub.com/dingo-d)] and \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patches ##### Changed - The Performance report can now also be used for a `phpcbf` run. [#308] - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Sniff tests which extend the PHPCS native `AbstractSniffUnitTest` class will now show a (non-build-breaking) warning when test case files contain fixable errors/warnings, but there is no corresponding `.fixed` file available in the test suite to verify the fixes against. [#336] - The warning is only displayed on PHPUnit 7.3.0 and higher. - The warning will be elevated to a test failure in PHPCS 4.0. - Thanks to \[Dan Wallis]\[[@fredden](https://togithub.com/fredden)] for the patch - The following sniffs have received performance related improvements: - Squiz.PHP.EmbeddedPhp - 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)], \[Joachim Noreiko]\[[@joachim-n](https://togithub.com/joachim-n)], \[Remi Collet]\[[@remicollet](https://togithub.com/remicollet)], \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] and \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for their contributions ##### Deprecated - Support for scanning JavaScript and CSS files. See [#2448]. - This also means that all sniffs which are only aimed at JavaScript or CSS files are now deprecated. - The Javascript and CSS Tokenizers, all Javascript and CSS specific sniffs, and support for JS and CSS in select sniffs which support multiple file types, will be removed in version 4.0.0. - The abstract `PHP_CodeSniffer\Filters\ExactMatch::getBlacklist()` and `PHP_CodeSniffer\Filters\ExactMatch::getWhitelist()` methods are deprecated and will be removed in the 4.0 release. See [#198]. - In version 4.0, these methods will be replaced with abstract `ExactMatch::getDisallowedFiles()` and `ExactMatch::getAllowedFiles()` methods - To make Filters extending `ExactMatch` cross-version compatible with both PHP_CodeSniffer 3.9.0+ as well as 4.0+, implement the new `getDisallowedFiles()` and `getAllowedFiles()` methods. - When both the `getDisallowedFiles()` and `getAllowedFiles()` methods as well as the `getBlacklist()` and `getWhitelist()` are available, the new methods will take precedence over the old methods. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - The MySource standard and all sniffs in it. See [#2471]. - The MySource standard and all sniffs in it will be removed in version 4.0.0. - The `Zend.Debug.CodeAnalyzer` sniff. See [#277]. - This sniff will be removed in version 4.0.0. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch ##### Fixed - Fixed bug [#127] : Squiz.Commenting.FunctionComment : The `MissingParamType` error code will now be used instead of `MissingParamName` when a parameter name is provided, but not its type. Additionally, invalid type hint suggestions will no longer be provided in these cases. - Thanks to \[Dan Wallis]\[[@fredden](https://togithub.com/fredden)] for the patch - Fixed bug [#196] : Squiz.PHP.EmbeddedPhp : fixer will no longer leave behind trailing whitespace when moving code to another line. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#196] : Squiz.PHP.EmbeddedPhp : will now determine the needed indent with higher precision in multiple situations. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#196] : Squiz.PHP.EmbeddedPhp : fixer will no longer insert a stray new line when the closer of a multi-line embedded PHP block and the opener of the next multi-line embedded PHP block would be on the same line. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#235] : Generic.CodeAnalysis.ForLoopWithTestFunctionCall : prevent a potential PHP 8.3 deprecation notice during live coding - Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patch - Fixed bug [#288] : Generic.WhiteSpace.IncrementDecrementSpacing : error message for post-in/decrement will now correctly inform about new lines found before the operator. - Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patch - Fixed bug [#296] : Generic.WhiteSpace.ArbitraryParenthesesSpacing : false positive for non-arbitrary parentheses when these follow the scope closer of a `switch` `case`. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#307] : PSR2.Classes.ClassDeclaration : space between a modifier keyword and the `class` keyword was not checked when the space included a new line or comment. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#325] : Squiz.Operators.IncrementDecrementUsage : the sniff was underreporting when there was (no) whitespace and/or comments in unexpected places. - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#335] : PSR12.Files.DeclareStatement : bow out in a certain parse error situation to prevent incorrect auto-fixes from being made. - Thanks to \[Dan Wallis]\[[@fredden](https://togithub.com/fredden)] for the patch - Fixed bug [#340] : Squiz.Commenting.ClosingDeclarationComment : no longer adds a stray newline when adding a missing comment. - Thanks to \[Dan Wallis]\[[@fredden](https://togithub.com/fredden)] for the patch ##### Other - A "Community cc list" has been introduced to ping maintainers of external standards and integrators for input regarding change proposals for PHP_CodeSniffer which may impact them. [#227] - For anyone who missed the discussion about this and is interested to be on this list, please feel invited to submit a PR to add yourself. The list is located in the `.github` folder. [#2448]: https://togithub.com/squizlabs/PHP_CodeSniffer/issues/2448 [#2471]: https://togithub.com/squizlabs/PHP_CodeSniffer/issues/2471 [#27]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/27 [#127]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/127 [#196]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/196 [#197]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/197 [#198]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/198 [#227]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/227 [#235]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/235 [#277]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/277 [#281]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/281 [#288]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/288 [#296]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/296 [#307]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/307 [#308]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/308 [#309]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/309 [#321]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/321 [#324]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/324 [#325]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/325 [#330]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/330 [#331]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/331 [#332]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/332 [#335]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/335 [#336]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/336 [#340]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/340 ### [`v3.8.1`](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/blob/HEAD/CHANGELOG.md#381---2024-01-11) [Compare Source](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/compare/3.8.0...3.8.1) ##### Added - Documentation has been added for the following sniffs: - Generic.CodeAnalysis.EmptyPHPStatement - Generic.Formatting.SpaceBeforeCast - Generic.PHP.Syntax - Generic.WhiteSpace.LanguageConstructSpacing - PSR12.Classes.ClosingBrace - PSR12.Classes.OpeningBraceSpace - PSR12.ControlStructures.BooleanOperatorPlacement - PSR12.Files.OpenTag - Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] and \[Denis Žoljom]\[[@dingo-d](https://togithub.com/dingo-d)] for the patches ##### Changed - GitHub releases will now always only contain unversioned release assets (PHARS + asc files) (same as it previously was in the squizlabs repo). See [#205] for context. - Thanks to \[Shivam Mathur]\[[@shivammathur](https://togithub.com/shivammathur)] for opening a discussion about this - Various housekeeping, includes improvements to the tests and documentation - Thanks to \[Dan Wallis]\[[@fredden](https://togithub.com/fredden)], \[Lucas Hoffmann]\[[@lucc](https://togithub.com/lucc)], \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] and \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for their contributions ##### Fixed - Fixed bug [#124] : Report Full : avoid unnecessarily wrapping lines when `-s` is used - Thanks to \[Brad Jorsch]\[[@anomiex](https://togithub.com/anomiex)] for the patch - Fixed bug [#124] : Report Full : fix incorrect bolding of pipes when `-s` is used and messages wraps - Thanks to \[Brad Jorsch]\[[@anomiex](https://togithub.com/anomiex)] for the patch - Fixed bug [#150] : Squiz.WhiteSpace.KeywordSpacing : prevent a PHP notice when run during live coding - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#154] : Report Full : delimiter line calculation could go wonky on wide screens when a report contains multi-line messages - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#178] : Squiz.Commenting.VariableComment : docblocks were incorrectly being flagged as missing when a property declaration used PHP native union/intersection type declarations - Thanks to \[Ferdinand Kuhl]\[[@fcool](https://togithub.com/fcool)] for the patch - Fixed bug [#211] : Squiz.Commenting.VariableComment : docblocks were incorrectly being flagged as missing when a property declaration used PHP 8.2+ stand-alone `true`/`false`/`null` type declarations - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#211] : Squiz.Commenting.VariableComment : docblocks were incorrectly being flagged as missing when a property declaration used PHP native `parent`, `self` or a namespace relative class name type declaration - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#226] : Generic.CodeAnalysis.ForLoopShouldBeWhileLoop : prevent a potential PHP 8.3 deprecation notice during live coding - Thanks to \[Rodrigo Primo]\[[@rodrigoprimo](https://togithub.com/rodrigoprimo)] for the patch [#124]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/124 [#150]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/150 [#154]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/154 [#178]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/178 [#205]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/205 [#211]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/211 [#226]: https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/226 ### [`v3.8.0`](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/blob/HEAD/CHANGELOG.md#380---2023-12-08) [Compare Source](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/compare/3.7.2...3.8.0) [Squizlabs/PHP_CodeSniffer](https://togithub.com/squizlabs/PHP_CodeSniffer) is dead. Long live [PHPCSStandards/PHP_CodeSniffer](https://togithub.com/PHPCSStandards/PHP_CodeSniffer)! ##### Breaking Changes - The `squizlabs/PHP_CodeSniffer` repository has been abandoned. The `PHPCSStandards/PHP_CodeSniffer` repository will serve as the continuation of the project. For more information about this change, please read the [announcement](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3932). - Installation of PHP_CodeSniffer via PEAR is no longer supported. - Users will need to switch to another installation method. - Note: this does not affect the PEAR sniffs. - For Composer users, nothing changes. - ***In contrast to earlier information, the `squizlabs/php_codesniffer` package now points to the new repository and everything will continue to work as before.*** - PHIVE users may need to clear the PHIVE URL cache. - PHIVE users who don't use the package alias, but refer to the package URL, will need to update the URL from `https://squizlabs.github.io/PHP_CodeSniffer/phars/` to `https://phars.phpcodesniffer.com/phars/`. - Users who download the PHAR files using curl or wget, will need to update the download URL from `https://squizlabs.github.io/PHP_CodeSniffer/[phpcs|phpcbf].phar` or `https://github.com/squizlabs/PHP_CodeSnifffer/releases/latest/download/[phpcs|phpcbf].phar` to `https://phars.phpcodesniffer.com/[phpcs|phpcbf].phar`. - For users who install PHP_CodeSniffer via the [setup-php](https://togithub.com/shivammathur/setup-php/) action runner for GitHub Actions, nothing changes. - Users using a git clone will need to update the clone address from `git@github.com:squizlabs/PHP_CodeSniffer.git` to `git@github.com:PHPCSStandards/PHP_CodeSniffer.git`. - Contributors will need to fork the new repo and add both the new fork as well as the new repo as remotes to their local git copy of PHP_CodeSniffer. - Users who have (valid) open issues or pull requests in the `squizlabs/PHP_CodeSniffer` repository are invited to resubmit these to the `PHPCSStandards/PHP_CodeSniffer` repository. ##### Added - Runtime support for PHP 8.3. All known PHP 8.3 deprecation notices have been fixed - Syntax support for new PHP 8.3 features will follow in a future release - If you find any PHP 8.3 deprecation notices which were missed, please report them - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patches - Added support for PHP 8.2 readonly classes to File::getClassProperties() through a new is_readonly array index in the return value - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Added support for PHP 8.2 readonly classes to a number of sniffs - Generic.CodeAnalysis.UnnecessaryFinalModifier - PEAR.Commenting.ClassComment - PEAR.Commenting.FileComment - PSR1.Files.SideEffects - PSR2.Classes.ClassDeclaration - PSR12.Files.FileHeader - Squiz.Classes.ClassDeclaration - Squiz.Classes.LowercaseClassKeywords - Squiz.Commenting.ClassComment - Squiz.Commenting.DocCommentAlignment - Squiz.Commenting.FileComment - Squiz.Commenting.InlineComment - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Added support for PHP 8.2 `true` as a stand-alone type declaration - The `File::getMethodProperties()`, `File::getMethodParameters()` and `File::getMemberProperties()` methods now all support the `true` type - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Added support for PHP 8.2 `true` as a stand-alone type to a number of sniffs - Generic.PHP.LowerCaseType - PSr12.Functions.NullableTypeDeclaration - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Added a Performance report to allow for finding "slow" sniffs - To run this report, run PHPCS with --report=Performance. - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Generic.PHP.RequireStrictTypes : new warning for when there is a declare statement, but the strict_types directive is set to 0 - The warning can be turned off by excluding the `Generic.PHP.RequireStrictTypes.Disabled` error code - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Squiz.Commenting.FunctionComment : new `ParamNameUnexpectedAmpersandPrefix` error for parameters annotated as passed by reference while the parameter is not passed by reference - Thanks to Dan Wallis ([@fredden](https://togithub.com/fredden)) for the patch - Documentation has been added for the following sniffs: - PSR2.Files.ClosingTag - PSR2.Methods.FunctionCallSignature - PSR2.Methods.FunctionClosingBrace - Thanks to Atsushi Okui ([@blue32a](https://togithub.com/blue32a)) for the patch - Support for PHPUnit 8 and 9 to the test suite - Test suites for external standards which run via the PHPCS native test suite can now run on PHPUnit 4-9 (was 4-7) - If any of these tests use the PHPUnit `setUp()`/`tearDown()` methods or overload the `setUp()` in the `AbstractSniffUnitTest` test case, they will need to be adjusted. See the [PR details for further information](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/pull/59/commits/26384ebfcc0b1c1651b0e1e40c9b6c8c22881832) - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch ##### Changed - Changes have been made to the way PHPCS handles invalid sniff properties being set in a custom ruleset - Fixes PHP 8.2 deprecation notices for properties set in a (custom) ruleset for complete standards/complete sniff categories - Invalid sniff properties set for individual sniffs will now result in an error and halt the execution of PHPCS - A descriptive error message is provided to allow users to fix their ruleset - Sniff properties set for complete standards/complete sniff categories will now only be set on sniffs which explicitly support the property - The property will be silently ignored for those sniffs which do not support the property - Invalid sniff properties set for sniffs via inline annotations will result in an informative `Internal.PropertyDoesNotExist` errror on line 1 of the scanned file, but will not halt the execution of PHPCS - For sniff developers, it is strongly recommended for sniffs to explicitly declare any user-adjustable public properties - If dynamic properties need to be supported for a sniff, either declare the magic \__set()/\__get()/\__isset()/\__unset() methods on the sniff or let the sniff extend stdClass - Note: The #\[\AllowDynamicProperties] attribute will have no effect for properties which are being set in rulesets - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - The third parameter for the Ruleset::setSniffProperty() method has been changed to expect an array - Sniff developers/integrators of PHPCS may need to make some small adjustments to allow for this change - Existing code will continue to work but will throw a deprecation error - The backwards compatiblity layer will be removed in PHPCS 4.0 - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - When using `auto` report width (the default) a value of 80 columns will be used if the width cannot be determined - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Sniff error messages are now more informative to help bugs get reported to the correct project - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Generic.CodeAnalysis.UnusedFunctionParameter will now ignore magic methods for which the signature is defined by PHP - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Generic.Functions.OpeningFunctionBraceBsdAllman will now check the brace indent before the opening brace for empty functions - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Generic.Functions.OpeningFunctionBraceKernighanRitchie will now check the spacing before the opening brace for empty functions - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Generic.WhiteSpace.IncrementDecrementSpacing now detects more spacing issues - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - PSR2.Classes.PropertyDeclaration now enforces that the readonly modifier comes after the visibility modifier - PSR2 and PSR12 do not have documented rules for this as they pre-date the readonly modifier - PSR-PER has been used to confirm the order of this keyword so it can be applied to PSR2 and PSR12 correctly - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - PEAR.Commenting.FunctionComment + Squiz.Commenting.FunctionComment: the SpacingAfter error can now be auto-fixed - Thanks to Dan Wallis ([@fredden](https://togithub.com/fredden)) for the patch - Squiz.PHP.InnerFunctions sniff no longer reports on OO methods for OO structures declared within a function or closure - Thanks to [@Daimona](https://togithub.com/Daimona) for the patch - Squiz.PHP.NonExecutableCode will now also flag redundant return statements just before a closure close brace - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Runtime performance improvement for PHPCS CLI users. The improvement should be most noticeable for users on Windows. - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - The following sniffs have received performance related improvements: - Generic.PHP.LowerCaseConstant - Generic.PHP.LowerCaseType - PSR12.Files.OpenTag - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patches - The -e (explain) command will now list sniffs in natural order - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Tests using the PHPCS native test framework with multiple test case files will now run the test case files in numeric order. - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - The following sniffs have received minor message readability improvements: - Generic.Arrays.ArrayIndent - Generic.Formatting.SpaceAfterCast - Generic.Formatting.SpaceAfterNot - Generic.WhiteSpace.SpreadOperatorSpacingAfter - Squiz.Arrays.ArrayDeclaration - Squiz.Commenting.DocCommentAlignment - Squiz.ControlStructures.ControlSignature - Thanks to Danny van der Sluijs ([@DannyvdSluijs](https://togithub.com/DannyvdSluijs)) and Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patches - Improved README syntax highlighting - Thanks to Benjamin Loison ([@Benjamin-Loison](https://togithub.com/Benjamin-Loison)) for the patch - Various documentation improvements - Thanks to Andrew Dawes ([@AndrewDawes](https://togithub.com/AndrewDawes)), Danny van der Sluijs ([@DannyvdSluijs](https://togithub.com/DannyvdSluijs)) and Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patches ##### Removed - Removed support for installation via PEAR - Use composer or the PHAR files instead ##### Fixed - Fixed bug [#2857] : Squiz/NonExecutableCode: prevent false positives when exit is used in a ternary expression or as default with null coalesce - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3386] : PSR1/SideEffects : improved recognition of disable/enable annotations - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3557] : Squiz.Arrays.ArrayDeclaration will now ignore PHP 7.4 array unpacking when determining whether an array is associative - Thanks to Volker Dusch ([@edorian](https://togithub.com/edorian)) for the patch - Fixed bug [#3592] : Squiz/NonExecutableCode: prevent false positives when a PHP 8.0+ inline throw expression is encountered - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3715] : Generic/UnusedFunctionParameter: fixed incorrect errorcode for closures/arrow functions nested within extended classes/classes which implement - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3717] : Squiz.Commenting.FunctionComment: fixed false positive for `InvalidNoReturn` when type is never - Thanks to Choraimy Kroonstuiver ([@axlon](https://togithub.com/axlon)) for the patch - Fixed bug [#3720] : Generic/RequireStrictTypes : will now bow out silently in case of parse errors/live coding instead of throwing false positives/false negatives - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3720] : Generic/RequireStrictTypes : did not handle multi-directive declare statements - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3722] : Potential "Uninitialized string offset 1" in octal notation backfill - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3736] : PEAR/FunctionDeclaration: prevent fixer removing the close brace (and creating a parse error) when there is no space between the open brace and close brace of a function - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3739] : PEAR/FunctionDeclaration: prevent fixer conflict, and potentially creating a parse error, for unconventionally formatted return types - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3770] : Squiz/NonExecutableCode: prevent false positives for switching between PHP and HTML - Thanks to Dan Wallis ([@fredden](https://togithub.com/fredden)) for the patch - Fixed bug [#3773] : Tokenizer/PHP: tokenization of the readonly keyword when used in combination with PHP 8.2 disjunctive normal types - Thanks to Dan Wallis ([@fredden](https://togithub.com/fredden)) and Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3776] : Generic/JSHint: error when JSHint is not available - Thanks to Dan Wallis ([@fredden](https://togithub.com/fredden)) for the patch - Fixed bug [#3777] : Squiz/NonExecutableCode: slew of bug fixes, mostly related to modern PHP - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3778] : Squiz/LowercasePHPFunctions: bug fix for class names in attributes - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3779] : Generic/ForbiddenFunctions: bug fix for class names in attributes - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3785] : Squiz.Commenting.FunctionComment: potential "Uninitialized string offset 0" when a type contains a duplicate pipe symbol - Thanks to Dan Wallis ([@fredden](https://togithub.com/fredden)) for the patch - Fixed bug [#3787] : PEAR/Squiz/\[MultiLine]FunctionDeclaration: allow for PHP 8.1 new in initializers - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3789] : Incorrect tokenization for ternary operator with `match` inside of it - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3790] : PSR12/AnonClassDeclaration: prevent fixer creating parse error when there was no space before the open brace - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3797] : Tokenizer/PHP: more context sensitive keyword fixes - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3801] : File::getMethodParameters(): allow for readonly promoted properties without visibility - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3805] : Generic/FunctionCallArgumentSpacing: prevent fixer conflict over PHP 7.3+ trailing comma's in function calls - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3806] : Squiz.PHP.InnerFunctions sniff now correctly reports inner functions declared within a closure - Thanks to [@Daimona](https://togithub.com/Daimona) for the patch - Fixed bug [#3809] : GitBlame report was broken when passing a basepath - Thanks to Chris ([@datengraben](https://togithub.com/datengraben)) for the patch - Fixed bug [#3813] : Squiz.Commenting.FunctionComment: false positive for parameter name mismatch on parameters annotated as passed by reference - Thanks to Dan Wallis ([@fredden](https://togithub.com/fredden)) for the patch - Fixed bug [#3833] : Generic.PHP.LowerCaseType: fixed potential undefined array index notice - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3846] : PSR2.Classes.ClassDeclaration.CloseBraceAfterBody : fixer will no longer remove indentation on the close brace line - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3854] : Fatal error when using Gitblame report in combination with `--basepath` and running from project subdirectory - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3856] : PSR12.Traits.UseDeclaration was using the wrong error code - SpacingAfterAs - for spacing issues after the `use` keyword - These will now be reported using the SpacingAfterUse error code - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3856] : PSR12.Traits.UseDeclaration did not check spacing after `use` keyword for multi-line trait use statements - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3867] : Tokenizer/PHP: union type and intersection type operators were not correctly tokenized for static properties without explicit visibility - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3877] : Filter names can be case-sensitive. The -h help text will now display the correct case for the available filters - Thanks to [@simonsan](https://togithub.com/simonsan) for the patch - Fixed bug [#3893] : Generic/DocComment : the SpacingAfterTagGroup fixer could accidentally remove ignore annotations - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3898] : Squiz/NonExecutableCode : the sniff could get confused over comments in unexpected places - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3904] : Squiz/FunctionSpacing : prevent potential fixer conflict - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3906] : Tokenizer/CSS: bug fix related to the unsupported slash comment syntax - Thanks to Dan Wallis ([@fredden](https://togithub.com/fredden)) for the patch - Fixed bug [#3913] : Config did not always correctly store unknown "long" arguments in the `$unknown` property - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch Thanks go to Dan Wallis ([@fredden](https://togithub.com/fredden)) and Danny van der Sluijs ([@DannyvdSluijs](https://togithub.com/DannyvdSluijs)) for reviewing quite a few of the PRs for this release. Additionally, thanks to Alexander Turek ([@derrabus](https://togithub.com/derrabus)) for consulting on the repo change over. [#2857]: https://togithub.com/squizlabs/PHP_CodeSniffer/issues/2857 [#3386]: https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3386 [#3557]: https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3557 [#3592]: https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3592 [#3715]: https://togithub.com/squizlabs/PHP_CodeSniffer/pull/3715 [#3717]: https://togithub.com/squizlabs/PHP_CodeSniffer/pull/3717 [#3720]: https://togithub.com/squizlabs/PHP_CodeSniffer/pull/3720 [#3722]: https://togithub.com/squizlabs/PHP_CodeSniffer/pull/3722 [#3736]: https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3736 [#3739]: https://togithub.com/squizlabs/PHP_CodeSniffer/pull/3739 [#3770]: https://togithub.com/squizlabs/PHP_CodeSniffer/pull/3770 [#3773]: https://togithub.com/squizlabs/PHP_CodeSniffer/pull/3773 [#3776]: https://togithub.com/squizlabs/PHP_CodeSniffer/pull/3776 [#3777]: https://togithub.com/squizlabs/PHP_CodeSniffer/pull/3777 [#3778]: https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3778 [#3779]: https://togithub.com/squizlabs/PHP_CodeSniffer/pull/3779 [#3785]: https://togithub.com/squizlabs/PHP_CodeSniffer/pull/3785 [#3787]: https://togithub.com/squizlabs/PHP_CodeSniffer/pull/3787 [#3789]: https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3789 [#3790]: https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3790 [#3797]: https://togithub.com/squizlabs/PHP_CodeSniffer/pull/3797 [#3801]: https://togithub.com/squizlabs/PHP_CodeSniffer/pull/3801 [#3805]: https://togithub.com/squizlabs/PHP_CodeSniffer/pull/3805 [#3806]: https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3806 [#3809]: https://togithub.com/squizlabs/PHP_CodeSniffer/pull/3809 [#3813]: https://togithub.com/squizlabs/PHP_CodeSniffer/pull/3813 [#3833]: https://togithub.com/squizlabs/PHP_CodeSniffer/pull/3833 [#3846]: https://togithub.com/squizlabs/PHP_CodeSniffer/pull/3846 [#3854]: https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3854 [#3856]: https://togithub.com/squizlabs/PHP_CodeSniffer/pull/3856 [#3867]: https://togithub.com/squizlabs/PHP_CodeSniffer/pull/3867 [#3877]: https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3877 [#3893]: https://togithub.com/squizlabs/PHP_CodeSniffer/pull/3893 [#3898]: https://togithub.com/squizlabs/PHP_CodeSniffer/pull/3898 [#3904]: https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3904 [#3906]: https://togithub.com/squizlabs/PHP_CodeSniffer/pull/3906 [#3913]: https://togithub.com/squizlabs/PHP_CodeSniffer/pull/3913 ### [`v3.7.2`](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/blob/HEAD/CHANGELOG.md#372---2023-02-23) [Compare Source](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/compare/3.7.1...3.7.2) ##### Changed - Newer versions of Composer will now suggest installing PHPCS using require-dev instead of require - Thanks to Gary Jones ([@GaryJones](https://togithub.com/GaryJones)) for the patch - A custom Out Of Memory error will now be shown if PHPCS or PHPCBF run out of memory during a run - Error message provides actionable information about how to fix the problem and ensures the error is not silent - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) and Alain Schlesser ([@schlessera](https://togithub.com/schlessera)) for the patch - Generic.PHP.LowerCaseType sniff now correctly examines types inside arrow functions - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Squiz.Formatting.OperatorBracket no longer reports false positives in match() structures ##### Fixed - Fixed bug [#3616](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/3616) : Squiz.PHP.DisallowComparisonAssignment false positive for PHP 8 match expression - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3618](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/3618) : Generic.WhiteSpace.ArbitraryParenthesesSpacing false positive for return new parent() - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3632](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/3632) : Short list not tokenized correctly in control structures without braces - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3639](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/3639) : Tokenizer not applying tab replacement to heredoc/nowdoc closers - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3640](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/3640) : Generic.WhiteSpace.DisallowTabIndent not reporting errors for PHP 7.3 flexible heredoc/nowdoc syntax - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3645](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/3645) : PHPCS can show 0 exit code when running in parallel even if child process has fatal error - Thanks to Alex Panshin ([@enl](https://togithub.com/enl)) for the patch - Fixed bug [#3653](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/3653) : False positives for match() in OperatorSpacingSniff - Thanks to Jaroslav Hanslík ([@kukulich](https://togithub.com/kukulich)) for the patch - Fixed bug [#3666](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/3666) : PEAR.Functions.FunctionCallSignature incorrect indent fix when checking mixed HTML/PHP files - Fixed bug [#3668](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/3668) : PSR12.Classes.ClassInstantiation.MissingParentheses false positive when instantiating parent classes - Similar issues also fixed in Generic.Functions.FunctionCallArgumentSpacing and Squiz.Formatting.OperatorBracket - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3672](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/3672) : Incorrect ScopeIndent.IncorrectExact report for match inside array literal - Fixed bug [#3694](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/3694) : Generic.WhiteSpace.SpreadOperatorSpacingAfter does not ignore spread operator in PHP 8.1 first class callables - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch ### [`v3.7.1`](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/blob/HEAD/CHANGELOG.md#371---2022-06-18) [Compare Source](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/compare/3.7.0...3.7.1) ##### Fixed - Fixed bug [#3609](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/issues/3609) : Methods/constants with name empty/isset/unset are always reported as error - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch ### [`v3.7.0`](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/blob/HEAD/CHANGELOG.md#370---2022-06-13) [Compare Source](https://togithub.com/PHPCSStandards/PHP_CodeSniffer/compare/3.6.2...3.7.0) ##### Added - Added support for PHP 8.1 explicit octal notation - This new syntax has been backfilled for PHP versions less than 8.1 - Thanks to \[Mark Baker]\[[@MarkBaker](https://togithub.com/MarkBaker)] for the patch - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for additional fixes - Added support for PHP 8.1 enums - This new syntax has been backfilled for PHP versions less than 8.1 - Includes a new T_ENUM_CASE token to represent the case statements inside an enum - Thanks to \[Jaroslav Hanslík]\[[@kukulich](https://togithub.com/kukulich)] for the patch - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for additional core and sniff support - Added support for the PHP 8.1 readonly token - Tokenizing of the readonly keyword has been backfilled for PHP versions less than 8.1 - Thanks to \[Jaroslav Hanslík]\[[@kukulich](https://togithub.com/kukulich)] for the patch - Added support for PHP 8.1 intersection types - Includes a new T_TYPE_INTERSECTION token to represent the ampersand character inside intersection types - Thanks to \[Jaroslav Hanslík]\[[@kukulich](https://togithub.com/kukulich)] for the patch ##### Changed - File::getMethodParameters now supports the new PHP 8.1 readonly token - When constructor property promotion is used, a new property_readonly array index is included in the return value - This is a boolean value indicating if the property is readonly - If the readonly token is detected, a new readonly_token array index is included in the return value - This contains the token index of the readonly keyword - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Support for new PHP 8.1 readonly keyword has been added to the following sniffs: - Generic.PHP.LowerCaseKeyword - PSR2.Classes.PropertyDeclaration - Squiz.Commenting.BlockComment - Squiz.Commenting.DocCommentAlignment - Squiz.Commenting.VariableComment - Squiz.WhiteSpace.ScopeKeywordSpacing - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patches - The parallel feature is now more efficient and runs faster in some situations due to improved process management - Thanks to \[Sergei Morozov]\[[@morozov](https://togithub.com/morozov)] for the patch - The list of installed coding standards now has consistent ordering across all platforms - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Generic.PHP.UpperCaseConstant and Generic.PHP.LowerCaseConstant now ignore type declarations - These sniffs now only report errors for true/false/null when used as values - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Generic.PHP.LowerCaseType now supports the PHP 8.1 never type - Thanks to \[Jaroslav Hanslík]\[[@kukulich](https://togithub.com/kukulich)] for the patch ##### Fixed - Fixed bug [#3502] : A match statement within an array produces Squiz.Arrays.ArrayDeclaration.NoKeySpecified - Fixed bug [#3503] : Squiz.Commenting.FunctionComment.ThrowsNoFullStop false positive when one line [@throw](https://togithub.com/throw) - Fixed bug [#3505] : The nullsafe operator is not counted in Generic.Metrics.CyclomaticComplexity - Thanks to \[Mark Baker]\[[@MarkBaker](https://togithub.com/MarkBaker)] for the patch - Fixed bug [#3526] : PSR12.Properties.ConstantVisibility false positive when using public final const syntax - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#3530] : Line indented incorrectly false positive when using match-expression inside switch case - Fixed bug [#3534] : Name of typed enum tokenized as T_GOTO_LABEL - Thanks to \[Juliette Reinders Folmer]\[[@jrfnl](https://togithub.com/jrfnl)] for the patch - Fixed bug [#3546] : Tokenizer/PHP: bug fix - parent/static keyConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.