Skip to content

3.5.3

Compare
Choose a tag to compare
@gsherwood gsherwood released this 04 Dec 05:03
· 1136 commits to master since this release
3.5.3
557a1fc
  • 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