3.4.1 - 2019-03-19
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
codereport was not previously available for PEAR installs - The
Generic.Formatting.SpaceBeforeCastsniff was not previously available for PEAR installs - The
Generic.WhiteSpace.LanguageConstructSpacingsniff 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_SETtokens now containsniffCode,sniffProperty, andsniffPropertyValueindexes- 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.DocCommenterror messages now contain the name of the comment tag that caused the error- Thanks to Juliette Reinders Folmer for the patch
Generic.ControlStructures.InlineControlStructurenow handles syntax errors correctly- Thanks to Juliette Reinders Folmer for the patch
Generic.Debug.JSHintnow longer requires rhino and can be run directly from the npm install- Thanks to Juliette Reinders Folmer for the patch
Generic.Files.LineEndingsno longer adds superfluous new line at the end of JS and CSS files- Thanks to Juliette Reinders Folmer for the patch
Generic.Formatting.DisallowMultipleStatementsno longer tries fix lines containingphpcs:ignorestatements- Thanks to Juliette Reinders Folmer for the patch
Generic.Functions.FunctionCallArgumentSpacingnow has improved performance and anonymous class support- Thanks to Juliette Reinders Folmer for the patch
Generic.WhiteSpace.ScopeIndentnow respects changes to theexactproperty usingphpcs:setmid-way through a file- This allows you change the
exactrule for only some parts of a file
- This allows you change the
Generic.WhiteSpace.ScopeIndentnow 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.ClassDeclarationnow has improved handling of PHPCS annotations and tab indentsPSR12.Classes.ClassInstantiationhas changed it's error code fromMissingParenthesistoMissingParenthesesPSR12.Keywords.ShortFormTypeKeywordsnow ignores all spacing inside type casts during both checking and fixing- Thanks to Juliette Reinders Folmer for the patch
Squiz.Classes.LowercaseClassKeywordsnow examines the class keyword for anonymous classes- Thanks to Juliette Reinders Folmer for the patch
Squiz.ControlStructures.ControlSignaturenow has improved handling of parse errors- Thanks to Juliette Reinders Folmer for the patch
Squiz.Commenting.PostStatementCommentfixer 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.SuperfluousWhitespacesniff - Thanks to Juliette Reinders Folmer for the patch
- Fixes a conflict between this sniff and the
Squiz.Commenting.PostStatementCommentnow ignores comments inside control structure conditions, such as FOR loops- Fixes a conflict between this sniff and the
Squiz.ControlStructures.ForLoopDeclarationsniff - Thanks to Juliette Reinders Folmer for the patch
- Fixes a conflict between this sniff and the
Squiz.Commenting.FunctionCommentThrowTagnow has improved support for unknown exception types and namespaces- Thanks to Juliette Reinders Folmer for the patch
Squiz.ControlStructures.ForLoopDeclarationhas improved whitespace, closure, and empty expression support- The
SpacingAfterSecondNoThirderror code has been removed as part of these fixes - Thanks to Juliette Reinders Folmer for the patch
- The
Squiz.CSS.ClassDefinitionOpeningBraceSpacenow handles comments and indentation correctly- Thanks to Juliette Reinders Folmer for the patch
Squiz.CSS.ClassDefinitionClosingBracenow handles comments, indentation, and multiple statements on the same line correctly- Thanks to Juliette Reinders Folmer for the patch
Squiz.CSS.Opacitynow handles comments correctly- Thanks to Juliette Reinders Folmer for the patch
Squiz.CSS.SemicolonSpacingnow handles comments and syntax errors correctly- Thanks to Juliette Reinders Folmer for the patch
Squiz.NamingConventions.ValidVariableNamenow supports variables inside anonymous classes correctly- Thanks to Juliette Reinders Folmer for the patch
Squiz.PHP.LowercasePHPFunctionsnow handles use statements, namespaces, and comments correctly- Thanks to Juliette Reinders Folmer for the patch
Squiz.WhiteSpace.FunctionSpacingnow fixes function spacing correctly when a function is the first content in a file- Thanks to Juliette Reinders Folmer for the patch
Squiz.WhiteSpace.SuperfluousWhitespaceno longer throws errors for spacing between functions and properties in anon classes- Thanks to Juliette Reinders Folmer for the patch
Zend.Files.ClosingTagno 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.ValidVariableNamenow 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