Releases
3.5.3
Compare
Sorry, something went wrong.
No results found
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 : Generic.WhiteSpace.ScopeIndent false positives when indenting open tags at a non tab-stop
Fixed bug #2638 : Squiz.CSS.DuplicateClassDefinitionSniff sees comments as part of the class name
Thanks to Raphael Horber for the patch
Fixed bug #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 : Squiz.Functions.FunctionDeclarationArgumentSpacing prints wrong argument name in error message
Fixed bug #2676 : PSR12.Files.FileHeader locks up when file ends with multiple inline comments
Fixed bug #2678 : PSR12.Classes.AnonClassDeclaration incorrectly enforcing that closing brace be on a line by itself
Fixed bug #2685 : File::getMethodParameters() setting typeHintEndToken for vars with no type hint
Thanks to Juliette Reinders Folmer for the patch
Fixed bug #2694 : AbstractArraySniff produces invalid indices when using ternary operator
Thanks to Michał Bundyra for the patch
Fixed bug #2702 : Generic.WhiteSpace.ScopeIndent false positive when using ternary operator with short arrays
You can’t perform that action at this time.