PHP Code Sniffer v3.5.4 Release Notes

Release Date: 2020-01-30 // about 4 years ago
    • The PHP 7.4 numeric separator backfill now works correctly for more float formats
      • Thanks to Juliette Reinders Folmer for the patch
    • The PHP 7.4 numeric separator backfill is no longer run on PHP version 7.4.0 or greater
    • File::getCondition() now accepts a 3rd argument that allows for the closest matching token to be returned
      • By default, it continues to return the first matched token found from the top of the file
    • πŸ›  Fixed detection of array return types for arrow functions
    • βž• Added Generic.PHP.DisallowRequestSuperglobal to ban the use of the $_REQUEST superglobal
      • Thanks to Morerice for the contribution
    • Generic.ControlStructures.InlineControlStructure no longer shows errors for while and for statements without a body
      • Previously it required these to have curly braces, but there were no statements to enclose in them
      • Thanks to Juliette Reinders Folmer for the patch
    • πŸ”§ PSR12.ControlStructures.BooleanOperatorPlacement can now be configured to enforce a specific operator position
      • By default, the sniff ensures that operators are all at the beginning or end of lines, but not a mix of both
      • Set the allowOnly property to first to enforce all boolean operators to be at the start of a line
      • Set the allowOnly property to last to enforce all boolean operators to be at the end of a line
      • Thanks to Vincent Langlet for the patch
    • πŸ›  PSR12.Files.ImportStatement now auto-fixes import statements by removing the leading slash
      • Thanks to MichaΕ‚ Bundyra for the patch
    • Squiz.ControlStructures.ForLoopDeclaration now has a setting to ignore newline characters
      • Default remains FALSE, so newlines are not allowed within for definitions
      • Override the ignoreNewlines setting in a ruleset.xml file to change
    • Squiz.PHP.InnerFunctions now handles multiple nested anon classes correctly
    • πŸ›  Fixed bug #2497 : Sniff properties not set when referencing a sniff using relative paths or non-native slashes
      • Thanks to Juliette Reinders Folmer for the patch
    • πŸ›  Fixed bug #2657 : Squiz.WhiteSpace.FunctionSpacing can remove spaces between comment and first/last method during auto-fixing
      • Thanks to Juliette Reinders Folmer for the patch
    • πŸ›  Fixed bug #2688 : Case statements not tokenized correctly when switch is contained within ternary
    • Fixed bug #2698 : PHPCS throws errors determining auto report width when shell_exec is disabled
      • Thanks to Matthew Peveler for the patch
    • πŸ›  Fixed bug #2730 : PSR12.ControlStructures.ControlStructureSpacing does not ignore comments between conditions
      • Thanks to Juliette Reinders Folmer for the patch
    • πŸ›  Fixed bug #2732 : PSR12.Files.FileHeader misidentifies file header in mixed content file
    • πŸ›  Fixed bug #2745 : AbstractArraySniff wrong indices when mixed coalesce and ternary values
      • Thanks to MichaΕ‚ Bundyra for the patch
    • πŸ›  Fixed bug #2748 : Wrong end of statement for fn closures
      • Thanks to MichaΕ‚ Bundyra for the patch
    • πŸ›  Fixed bug #2751 : Autoload relative paths first to avoid confusion with files from the global include path
      • Thanks to Klaus Purer for the patch
    • πŸ›  Fixed bug #2763 : PSR12 standard reports errors for multi-line FOR definitions
    • πŸ›  Fixed bug #2768 : Generic.Files.LineLength false positive for non-breakable strings at exactly the soft limit
      • Thanks to Alex Miles for the patch
    • πŸ›  Fixed bug #2773 : PSR2.Methods.FunctionCallSignature false positive when arrow function has array return type
    • πŸ›  Fixed bug #2790 : PSR12.Traits.UseDeclaration ignores block comments
      • Thanks to Vincent Langlet for the patch
    • πŸ›  Fixed bug #2791 : PSR12.Functions.NullableTypeDeclaration false positive when ternary operator used with instanceof
      • Thanks to Juliette Reinders Folmer for the patch
    • πŸ›  Fixed bug #2802 : Can't specify a report file path using the tilde shortcut
    • πŸ›  Fixed bug #2804 : PHP4-style typed properties not tokenized correctly
      • Thanks to Juliette Reinders Folmer for the patch
    • πŸ›  Fixed bug #2805 : Undefined Offset notice during live coding of arrow functions
      • Thanks to Juliette Reinders Folmer for the patch
    • πŸ›  Fixed bug #2843 : Tokenizer does not support alternative syntax for declare statements
      • Thanks to Juliette Reinders Folmer for the patch