squizlabs/PHP_CodeSniffer
### [`v3.5.3`](https://togithub.com/squizlabs/PHP_CodeSniffer/releases/3.5.3)
[Compare Source](https://togithub.com/squizlabs/PHP_CodeSniffer/compare/3.5.2...3.5.3)
- The PHP 7.4 `T_FN` token has been made available for older versions
- `T_FN` represents the `fn` string used for arrow functions
- The double arrow becomes the scope opener, and uses a new `T_FN_ARROW` token type
- The token after the statement (normally a semicolon) becomes the scope closer
- The token is also associated with the opening and closing parenthesis of the statement
- Any functions named `fn` will have a `T_FN token` for the function name, but have no scope information
- Thanks to Michał Bundyra for the help with this change
- PHP 7.4 numeric separators are now tokenized in the same way when using older PHP versions
- Previously, a number like `1_000` would tokenize as `T_LNUMBER (1), T_STRING (_000)`
- Now, the number tokenizes as `T_LNUMBER (1_000)`
- Sniff developers should consider how numbers with underscores impact their custom sniffs
- The PHPCS file cache now takes file permissions into account
- The cache is now invalidated for a file when its permissions are changed
- `File::getMethodParameters()` now supports arrow functions
- `File::getMethodProperties()` now supports arrow functions
- Added `Fixer::changeCodeBlockIndent()` to change the indent of a code block while auto-fixing
- Can be used to either increase or decrease the indent
- Useful when moving the start position of something like a closure, where you want the content to also move
- Added `Generic.Files.ExecutableFile` sniff
- Ensures that files are not executable
- Thanks to Matthew Peveler for the contribution
- `Generic.CodeAnalysis.EmptyPhpStatement` now reports unnecessary semicolons after control structure closing braces
- Thanks to Vincent Langlet for the patch
- `Generic.PHP.LowerCaseKeyword` now enforces that the `fn` keyword is lowercase
- Thanks to Michał Bundyra for the patch
- `Generic.WhiteSpace.ScopeIndent` now supports static arrow functions
- `PEAR.Functions.FunctionCallSignature` now adjusts the indent of function argument contents during auto-fixing
- Previously, only the first line of an argument was changed, leading to inconsistent indents
- This change also applies to `PSR2.Methods.FunctionCallSignature`
- `PSR2.ControlStructures.ControlStructureSpacing` now checks whitespace before the closing parenthesis of multi-line control structures
- Previously, it incorrectly applied the whitespace check for single-line definitions only
- `PSR12.Functions.ReturnTypeDeclaration` now checks the return type of arrow functions
- Thanks to Michał Bundyra for the patch
- `PSR12.Traits.UseDeclaration` now ensures all trait import statements are grouped together
- Previously, the trait import section of the class ended when the first non-import statement was found
- Checking now continues throughout the class to ensure all statements are grouped together
- This also ensures that empty lines are not requested after an import statement that isn't the last one
- `Squiz.Functions.LowercaseFunctionKeywords` now enforces that the `fn` keyword is lowercase
- Thanks to Michał Bundyra for the patch
- Fixed bug [#2586](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/2586) : Generic.WhiteSpace.ScopeIndent false positives when indenting open tags at a non tab-stop
- Fixed bug [#2638](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/2638) : Squiz.CSS.DuplicateClassDefinitionSniff sees comments as part of the class name
- Thanks to Raphael Horber for the patch
- Fixed bug [#2640](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/2640) : Squiz.WhiteSpace.OperatorSpacing false positives for some negation operators
- Thanks to Jakub Chábek and Juliette Reinders Folmer for the patch
- Fixed bug [#2674](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/2674) : Squiz.Functions.FunctionDeclarationArgumentSpacing prints wrong argument name in error message
- Fixed bug [#2676](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/2676) : PSR12.Files.FileHeader locks up when file ends with multiple inline comments
- Fixed bug [#2678](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/2678) : PSR12.Classes.AnonClassDeclaration incorrectly enforcing that closing brace be on a line by itself
- Fixed bug [#2685](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/2685) : File::getMethodParameters() setting typeHintEndToken for vars with no type hint
- Thanks to Juliette Reinders Folmer for the patch
- Fixed bug [#2694](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/2694) : AbstractArraySniff produces invalid indices when using ternary operator
- Thanks to Michał Bundyra for the patch
- Fixed bug [#2702](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/2702) : Generic.WhiteSpace.ScopeIndent false positive when using ternary operator with short arrays
Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or if you tick the rebase/retry checkbox below.
:no_bell: 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.5.2
->3.5.3
Release Notes
squizlabs/PHP_CodeSniffer
### [`v3.5.3`](https://togithub.com/squizlabs/PHP_CodeSniffer/releases/3.5.3) [Compare Source](https://togithub.com/squizlabs/PHP_CodeSniffer/compare/3.5.2...3.5.3) - The PHP 7.4 `T_FN` token has been made available for older versions - `T_FN` represents the `fn` string used for arrow functions - The double arrow becomes the scope opener, and uses a new `T_FN_ARROW` token type - The token after the statement (normally a semicolon) becomes the scope closer - The token is also associated with the opening and closing parenthesis of the statement - Any functions named `fn` will have a `T_FN token` for the function name, but have no scope information - Thanks to Michał Bundyra for the help with this change - PHP 7.4 numeric separators are now tokenized in the same way when using older PHP versions - Previously, a number like `1_000` would tokenize as `T_LNUMBER (1), T_STRING (_000)` - Now, the number tokenizes as `T_LNUMBER (1_000)` - Sniff developers should consider how numbers with underscores impact their custom sniffs - The PHPCS file cache now takes file permissions into account - The cache is now invalidated for a file when its permissions are changed - `File::getMethodParameters()` now supports arrow functions - `File::getMethodProperties()` now supports arrow functions - Added `Fixer::changeCodeBlockIndent()` to change the indent of a code block while auto-fixing - Can be used to either increase or decrease the indent - Useful when moving the start position of something like a closure, where you want the content to also move - Added `Generic.Files.ExecutableFile` sniff - Ensures that files are not executable - Thanks to Matthew Peveler for the contribution - `Generic.CodeAnalysis.EmptyPhpStatement` now reports unnecessary semicolons after control structure closing braces - Thanks to Vincent Langlet for the patch - `Generic.PHP.LowerCaseKeyword` now enforces that the `fn` keyword is lowercase - Thanks to Michał Bundyra for the patch - `Generic.WhiteSpace.ScopeIndent` now supports static arrow functions - `PEAR.Functions.FunctionCallSignature` now adjusts the indent of function argument contents during auto-fixing - Previously, only the first line of an argument was changed, leading to inconsistent indents - This change also applies to `PSR2.Methods.FunctionCallSignature` - `PSR2.ControlStructures.ControlStructureSpacing` now checks whitespace before the closing parenthesis of multi-line control structures - Previously, it incorrectly applied the whitespace check for single-line definitions only - `PSR12.Functions.ReturnTypeDeclaration` now checks the return type of arrow functions - Thanks to Michał Bundyra for the patch - `PSR12.Traits.UseDeclaration` now ensures all trait import statements are grouped together - Previously, the trait import section of the class ended when the first non-import statement was found - Checking now continues throughout the class to ensure all statements are grouped together - This also ensures that empty lines are not requested after an import statement that isn't the last one - `Squiz.Functions.LowercaseFunctionKeywords` now enforces that the `fn` keyword is lowercase - Thanks to Michał Bundyra for the patch - Fixed bug [#2586](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/2586) : Generic.WhiteSpace.ScopeIndent false positives when indenting open tags at a non tab-stop - Fixed bug [#2638](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/2638) : Squiz.CSS.DuplicateClassDefinitionSniff sees comments as part of the class name - Thanks to Raphael Horber for the patch - Fixed bug [#2640](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/2640) : Squiz.WhiteSpace.OperatorSpacing false positives for some negation operators - Thanks to Jakub Chábek and Juliette Reinders Folmer for the patch - Fixed bug [#2674](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/2674) : Squiz.Functions.FunctionDeclarationArgumentSpacing prints wrong argument name in error message - Fixed bug [#2676](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/2676) : PSR12.Files.FileHeader locks up when file ends with multiple inline comments - Fixed bug [#2678](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/2678) : PSR12.Classes.AnonClassDeclaration incorrectly enforcing that closing brace be on a line by itself - Fixed bug [#2685](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/2685) : File::getMethodParameters() setting typeHintEndToken for vars with no type hint - Thanks to Juliette Reinders Folmer for the patch - Fixed bug [#2694](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/2694) : AbstractArraySniff produces invalid indices when using ternary operator - Thanks to Michał Bundyra for the patch - Fixed bug [#2702](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/2702) : Generic.WhiteSpace.ScopeIndent false positive when using ternary operator with short arraysRenovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or if you tick the rebase/retry checkbox below.
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.