github PHPCSStandards/PHP_CodeSniffer 3.4.1
3.4.1 - 2019-03-19

latest releases: 3.11.0, 3.10.3, 3.10.2...
12 months ago

Note for PEAR Users

The PEAR installable version of PHPCS was missing some files, which have been re-included in this release. The result of these omissions were:

  • The code report was not previously available for PEAR installs
  • The Generic.Formatting.SpaceBeforeCast sniff was not previously available for PEAR installs
  • The Generic.WhiteSpace.LanguageConstructSpacing sniff was not previously available for PEAR installs

Thanks to Juliette Reinders Folmer for the patch

Changelog

  • PHPCS will now refuse to run if any of the required PHP extensions are not loaded
    • Previously, PHPCS only relied on requirements being checked by PEAR and Composer
    • Thanks to Juliette Reinders Folmer for the patch
  • Ruleset XML parsing errors are now displayed in a readable format so they are easier to correct
    • Thanks to Juliette Reinders Folmer for the patch
  • The PSR2 standard no longer throws duplicate errors for spacing around FOR loop parentheses
    • Thanks to Juliette Reinders Folmer for the patch
  • T_PHPCS_SET tokens now contain sniffCode, sniffProperty, and sniffPropertyValue indexes
    • Sniffs can use this information instead of having to parse the token content manually
  • Added more guard code for syntax errors to various CSS sniffs
    • Thanks to Juliette Reinders Folmer for the patch
  • Generic.Commenting.DocComment error messages now contain the name of the comment tag that caused the error
    • Thanks to Juliette Reinders Folmer for the patch
  • Generic.ControlStructures.InlineControlStructure now handles syntax errors correctly
    • Thanks to Juliette Reinders Folmer for the patch
  • Generic.Debug.JSHint now longer requires rhino and can be run directly from the npm install
    • Thanks to Juliette Reinders Folmer for the patch
  • Generic.Files.LineEndings no longer adds superfluous new line at the end of JS and CSS files
    • Thanks to Juliette Reinders Folmer for the patch
  • Generic.Formatting.DisallowMultipleStatements no longer tries fix lines containing phpcs:ignore statements
    • Thanks to Juliette Reinders Folmer for the patch
  • Generic.Functions.FunctionCallArgumentSpacing now has improved performance and anonymous class support
    • Thanks to Juliette Reinders Folmer for the patch
  • Generic.WhiteSpace.ScopeIndent now respects changes to the exact property using phpcs:set mid-way through a file
    • This allows you change the exact rule for only some parts of a file
  • Generic.WhiteSpace.ScopeIndent now disables exact indent checking inside all arrays
    • Previously, this was only done when using long array syntax, but it now works for short array syntax as well
  • PEAR.Classes.ClassDeclaration now has improved handling of PHPCS annotations and tab indents
  • PSR12.Classes.ClassInstantiation has changed it's error code from MissingParenthesis to MissingParentheses
  • PSR12.Keywords.ShortFormTypeKeywords now ignores all spacing inside type casts during both checking and fixing
    • Thanks to Juliette Reinders Folmer for the patch
  • Squiz.Classes.LowercaseClassKeywords now examines the class keyword for anonymous classes
    • Thanks to Juliette Reinders Folmer for the patch
  • Squiz.ControlStructures.ControlSignature now has improved handling of parse errors
    • Thanks to Juliette Reinders Folmer for the patch
  • Squiz.Commenting.PostStatementComment fixer no longer adds a blank line at the start of a JS file that begins with a comment
    • Fixes a conflict between this sniff and the Squiz.WhiteSpace.SuperfluousWhitespace sniff
    • Thanks to Juliette Reinders Folmer for the patch
  • Squiz.Commenting.PostStatementComment now ignores comments inside control structure conditions, such as FOR loops
    • Fixes a conflict between this sniff and the Squiz.ControlStructures.ForLoopDeclaration sniff
    • Thanks to Juliette Reinders Folmer for the patch
  • Squiz.Commenting.FunctionCommentThrowTag now has improved support for unknown exception types and namespaces
    • Thanks to Juliette Reinders Folmer for the patch
  • Squiz.ControlStructures.ForLoopDeclaration has improved whitespace, closure, and empty expression support
    • The SpacingAfterSecondNoThird error code has been removed as part of these fixes
    • Thanks to Juliette Reinders Folmer for the patch
  • Squiz.CSS.ClassDefinitionOpeningBraceSpace now handles comments and indentation correctly
    • Thanks to Juliette Reinders Folmer for the patch
  • Squiz.CSS.ClassDefinitionClosingBrace now handles comments, indentation, and multiple statements on the same line correctly
    • Thanks to Juliette Reinders Folmer for the patch
  • Squiz.CSS.Opacity now handles comments correctly
    • Thanks to Juliette Reinders Folmer for the patch
  • Squiz.CSS.SemicolonSpacing now handles comments and syntax errors correctly
    • Thanks to Juliette Reinders Folmer for the patch
  • Squiz.NamingConventions.ValidVariableName now supports variables inside anonymous classes correctly
    • Thanks to Juliette Reinders Folmer for the patch
  • Squiz.PHP.LowercasePHPFunctions now handles use statements, namespaces, and comments correctly
    • Thanks to Juliette Reinders Folmer for the patch
  • Squiz.WhiteSpace.FunctionSpacing now fixes function spacing correctly when a function is the first content in a file
    • Thanks to Juliette Reinders Folmer for the patch
  • Squiz.WhiteSpace.SuperfluousWhitespace no longer throws errors for spacing between functions and properties in anon classes
    • Thanks to Juliette Reinders Folmer for the patch
  • Zend.Files.ClosingTag no longer adds a semi-colon during fixing of a file that only contains a comment
    • Thanks to Juliette Reinders Folmer for the patch
  • Zend.NamingConventions.ValidVariableName now supports variables inside anonymous classes correctly
    • Thanks to Juliette Reinders Folmer for the patch
  • Fixed bug #2298 : PSR2.Classes.ClassDeclaration allows extended class on new line
    • Thanks to Michał Bundyra for the patch
  • Fixed bug #2337 : Generic.WhiteSpace.ScopeIndent incorrect error when multi-line function call starts on same line as open tag
  • Fixed bug #2348 : Cache not invalidated when changing a ruleset included by another
  • Fixed bug #2376 : Using __halt_compiler() breaks Generic.PHP.ForbiddenFunctions unless it's last in the function list
    • Thanks to Sijun Zhu for the patch
  • Fixed bug #2393 : The gitmodified filter will infinitely loop when encountering deleted file paths
    • Thanks to Lucas Manzke for the patch
  • Fixed bug #2396 : Generic.WhiteSpace.ScopeIndent incorrect error when multi-line IF condition mixed with HTML
  • Fixed bug #2431 : Use function/const not tokenized as T_STRING when preceded by comment

Don't miss a new PHP_CodeSniffer release

NewReleases is sending notifications on new releases.