diff --git a/package.xml b/package.xml index 7c9e2387e9..6704cc7390 100644 --- a/package.xml +++ b/package.xml @@ -17,8 +17,8 @@ http://pear.php.net/dtd/package-2.0.xsd"> 2019-12-04 - 3.5.3 - 3.5.3 + 3.5.4 + 3.5.4 stable @@ -26,58 +26,8 @@ http://pear.php.net/dtd/package-2.0.xsd"> BSD 3-Clause License - - The PHP 7.4 T_FN token has been made available for older versions - -- T_FN represents the fn string used for arrow functions - -- The double arrow becomes the scope opener, and uses a new T_FN_ARROW token type - -- The token after the statement (normally a semicolon) becomes the scope closer - -- The token is also associated with the opening and closing parenthesis of the statement - -- Any functions named "fn" will cause have a T_FN token for the function name, but have no scope information - -- Thanks to Michał Bundyra for the help with this change - - PHP 7.4 numeric separators are now tokenized in the same way when using older PHP versions - -- Previously, a number like 1_000 would tokenize as T_LNUMBER (1), T_STRING (_000) - -- Now, the number tokenizes as T_LNUMBER (1_000) - -- Sniff developers should consider how numbers with underscores impact their custom sniffs - - The PHPCS file cache now takes file permissions into account - -- The cache is now invalidated for a file when its permissions are changed - - File::getMethodParameters() now supports arrow functions - - File::getMethodProperties() now supports arrow functions - - Added Fixer::changeCodeBlockIndent() to change the indent of a code block while auto-fixing - -- Can be used to either increase or decrease the indent - -- Useful when moving the start position of something like a closure, where you want the content to also move - - Added Generic.Files.ExecutableFile sniff - -- Ensures that files are not executable - -- Thanks to Matthew Peveler for the contribution - - Generic.CodeAnalysis.EmptyPhpStatement now reports unnecessary semicolons after control structure closing braces - -- Thanks to Vincent Langlet for the patch - - Generic.PHP.LowerCaseKeyword now enforces that the "fn" keyword is lowercase - -- Thanks to Michał Bundyra for the patch - - Generic.WhiteSpace.ScopeIndent now supports static arrow functions - - PEAR.Functions.FunctionCallSignature now adjusts the indent of function argument contents during auto-fixing - -- Previously, only the first line of an argument was changed, leading to inconsistent indents - -- This change also applies to PSR2.Methods.FunctionCallSignature - - PSR2.ControlStructures.ControlStructureSpacing now checks whitespace before the closing parenthesis of multi-line control structures - -- Previously, it incorrectly applied the whitespace check for single-line definitions only - - PSR12.Functions.ReturnTypeDeclaration now checks the return type of arrow functions - -- Thanks to Michał Bundyra for the patch - - PSR12.Traits.UseDeclaration now ensures all trait import statements are grouped together - -- Previously, the trait import section of the class ended when the first non-import statement was found - -- Checking now continues throughout the class to ensure all statements are grouped together - -- This also ensures that empty lines are not requested after an import statement that isn't the last one - - Squiz.Functions.LowercaseFunctionKeywords now enforces that the "fn" keyword is lowercase - -- Thanks to Michał Bundyra for the patch - - Fixed bug #2586 : Generic.WhiteSpace.ScopeIndent false positives when indenting open tags at a non tab-stop - - Fixed bug #2638 : Squiz.CSS.DuplicateClassDefinitionSniff sees comments as part of the class name - -- Thanks to Raphael Horber for the patch - - Fixed bug #2640 : Squiz.WhiteSpace.OperatorSpacing false positives for some negation operators - -- Thanks to Jakub Chábek and Juliette Reinders Folmer for the patch - - Fixed bug #2674 : Squiz.Functions.FunctionDeclarationArgumentSpacing prints wrong argument name in error message - - Fixed bug #2676 : PSR12.Files.FileHeader locks up when file ends with multiple inline comments - - Fixed bug #2678 : PSR12.Classes.AnonClassDeclaration incorrectly enforcing that closing brace be on a line by itself - - Fixed bug #2685 : File::getMethodParameters() setting typeHintEndToken for vars with no type hint - -- Thanks to Juliette Reinders Folmer for the patch - - Fixed bug #2694 : AbstractArraySniff produces invalid indices when using ternary operator - -- Thanks to Michał Bundyra for the patch - - Fixed bug #2702 : Generic.WhiteSpace.ScopeIndent false positive when using ternary operator with short arrays + - Fixed bug #2751 : Autoload relative paths first to avoid confusion with files from the global include path + -- Thanks to Klaus Purer for the patch diff --git a/src/Config.php b/src/Config.php index 577a023f84..89e4f57fc8 100644 --- a/src/Config.php +++ b/src/Config.php @@ -23,7 +23,7 @@ class Config * * @var string */ - const VERSION = '3.5.3'; + const VERSION = '3.5.4'; /** * Package stability; either stable, beta or alpha. diff --git a/src/Ruleset.php b/src/Ruleset.php index f1f28397fe..2e21f95160 100644 --- a/src/Ruleset.php +++ b/src/Ruleset.php @@ -349,7 +349,7 @@ public function processRuleset($rulesetPath, $depth=0) $ownSniffs = $this->expandSniffDirectory($sniffDir, $depth); } - // Included custom autoloaders. + // Include custom autoloaders. foreach ($ruleset->{'autoload'} as $autoload) { if ($this->shouldProcessElement($autoload) === false) { continue; @@ -360,7 +360,7 @@ public function processRuleset($rulesetPath, $depth=0) // Try relative autoload paths first. $relativePath = Util\Common::realPath(dirname($rulesetPath).DIRECTORY_SEPARATOR.$autoloadPath); - if ($relativePath !== false && is_file($$relativePath) === true) { + if ($relativePath !== false && is_file($relativePath) === true) { $autoloadPath = $relativePath; } else if (is_file($autoloadPath) === false) { throw new RuntimeException('The specified autoload file "'.$autoload.'" does not exist');