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 containsniffCode
,sniffProperty
, andsniffPropertyValue
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 containingphpcs: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 theexact
property usingphpcs:set
mid-way through a file- This allows you change the
exact
rule for only some parts of a file
- This allows you change the
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 indentsPSR12.Classes.ClassInstantiation
has changed it's error code fromMissingParenthesis
toMissingParentheses
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
- Fixes a conflict between this sniff and the
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
- Fixes a conflict between this sniff and the
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
- The
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