- Time and memory output is now shown if progress information is also shown (request #335)
- A tilde can now be used to reference a user's home directory in a path to a standard (request #353)
- Added PHP_CodeSniffer_File::findStartOfStatement() to find the first non-whitespace token in a statement
- Possible alternative for code using PHP_CodeSniffer_File::findPrevious() with the local flag set
- Added PHP_CodeSniffer_File::findEndOfStatement() to find the last non-whitespace token in a statement
- Possible alternative for code using PHP_CodeSniffer_File::findNext() with the local flag set
- Generic opening function brace sniff now ensure the opening brace is the last content on the line
- Affects OpeningFunctionBraceBsdAllmanSniff and OpeningFunctionBraceKernighanRitchieSniff
- Also enforced in PEAR FunctionDeclarationSniff and Squiz MultiLineFunctionDeclarationSniff
- Generic DisallowTabIndentSniff now replaces tabs everywhere it finds them, except in strings and here/now docs
- Generic EmptyStatementSniff error codes now contain the type of empty statement detected (request #314)
- All messages generated by this sniff are now errors (empty CATCH was previously a warning)
- Message code Generic.CodeAnalysis.EmptyStatement.NotAllowed has been removed
- Message code Generic.CodeAnalysis.EmptyStatement.NotAllowedWarning has been removed
- New message codes have the format Generic.CodeAnalysis.EmptyStatement.Detected[TYPE]
- Example code is Generic.CodeAnalysis.EmptyStatement.DetectedCATCH
- You can now use a custom ruleset to change messages to warnings and to exclude them
- PEAR and Squiz FunctionCommentSniffs no longer ban
@return
tags for constructors and destructors - Squiz EmptyStatementSniff has been removed
- Squiz standard now includes Generic EmptyStatementSniff and turns off the empty CATCH error
- Squiz ControlSignatureSniff fixes now retain comments between the closing parenthesis and open brace
- Squiz SuperfluousWhitespaceSniff now checks for extra blank lines inside closures
- Thanks to Sertan Danis for the patch
- Squiz ArrayDeclarationSniff now skips function calls while checking multi-line arrays
- Fixed bug #337 : False positive with anonymous functions in Generic_Sniffs_WhiteSpace_ScopeIndentSniff
- Fixed bug #339 : reformatting brace location can result in broken code
- Fixed bug #342 : Nested ternary operators not tokenized correctly
- Fixed bug #345 : Javascript regex not tokenized when inside array
- Fixed bug #346 : PHP path can't be determined in some cases in "phpcs.bat" (on Windows XP)
- Fixed bug #358 : False positives for Generic_Sniffs_WhiteSpace_ScopeIndentSniff
- Fixed bug #361 : Sniff-specific exclude patterns don't work for Windows
- Fixed bug #364 : Don't interpret "use function" as declaration
- Fixed bug #366 : phpcbf with PSR2 errors on control structure alternative syntax
- Fixed bug #367 : Nested Anonymous Functions Causing False Negative
- Fixed bug #371 : Shorthand binary cast causes tokenizer errors
- New token T_BINARY_CAST added for the b"string" cast format (the 'b' is the T_BINARY_CAST token)
- Fixed bug #372 : phpcbf parse problem, wrong brace placement for inline IF
- Fixed bug #373 : Double quote usage fix removing too many double quotes
- Fixed bug #20196 : 1.5.2 breaks scope_closer position