github ecsphp/ecs 13.3.14
ECS 13.3.14

3 hours ago

Bug fixes 🐛

  • NativeFunctionInvocation: use FunctionsAnalyzer::isGlobalFunctionCall so only real global function calls are touched (#275) — thanks @gnutix
  • StatementIndentation: handle comments directly above a case, and template files (#278) — thanks @gnutix
  • Invalidate the cache when a local checker's own code changes, so edits to custom rules are picked up (#211) — thanks @gnutix

Blink (experimental Go engine) 😉

Ported fixers and sniffs

  • Port 7 ClassNotation fixers to Go (#284)
  • Port 5 FunctionNotation fixers from PHP-CS-Fixer (#282)
  • Port Operator, ControlStructure, ArrayNotation and ReturnNotation fixers (#281)
  • Port LanguageConstruct fixers (combine issets/unsets, no unset on property) (#283)
  • Port 5 PhpUnit fixers (strict, assert new names, mock, dedicate assert internal type, namespaced) (#280)
  • Port StringNotation string/heredoc fixers (#285)
  • Port 8 misc PHP-CS-Fixer fixers (Strict, Alias, Basic, Attribute, Namespace) (#286)
  • Port 6 phpdoc fixers (#292)
  • Port MethodChainingNewline and StandaloneLineConstructorParam (#299) — thanks @gnutix
  • Port MultilinePromotedPropertiesFixer (#303)
  • Port GroupImportFixer (#305)
  • Port CommentToPhpdocFixer (#304)
  • Port risky DateTimeImmutable fixer (#295)
  • Port NativeFunctionInvocationFixer (#270)
  • Add ArrayPush, BacktickToShellExec, EregToPreg, ModernizeStrpos, PowToExponentiation, SetTypeToCast (#269) — thanks @gnutix
  • Add DeclareStrictTypes, VoidReturn, StaticLambda, NoUselessElse, NoUnneededFinalMethod, NoPhp4Constructor (#263) — thanks @gnutix
  • Add 6 string, naming and serialization rules (#266) — thanks @gnutix
  • Add DirConstant, CombineNestedDirname, ImplodeCall, NoUselessSprintf, ModernizeTypesCasting, FopenFlagOrder (#264) — thanks @gnutix
  • Add 4 PHPUnit rules, DoctrineAnnotationBraces and GlobalKeywordSniff (#267) — thanks @gnutix
  • Add LanguageConstructSpacing sniff to match the PHP engine (#249)
  • The rest of #250 in one PR (skip semantics, rule defaults, 8 new rules) (#274) — thanks @gnutix

Parity and correctness fixes:

  • Fix two rules counted wrong in the README coverage (#300) — thanks @gnutix
  • Map deprecated PHP-CS-Fixer rules to their successors (#296) — thanks @gnutix
  • Fix SpacesInsideParentheses, LineLength on attributes, TrimArraySpaces and FunctionDeclaration (#301) — thanks @GErpeldinger
  • Fix StandaloneLineRequiredParam, BracesPosition, StatementIndentation, MethodArgumentSpace and TrailingCommaInMultiline (#291) — thanks @GErpeldinger
  • Fix NoUnneededControlParentheses on clone, and ConstantCase on names (#289) — thanks @GErpeldinger
  • Fix NoUnusedImports and OrderedImports (#260) — thanks @gnutix
  • Fix 8 rules that changed valid code (#259) — thanks @gnutix
  • Fix TernaryOperatorSpaces, FullyQualifiedStrictTypes and NullableTypeDeclaration (#258) — thanks @gnutix
  • Fix BracesPosition, StatementIndentation and AddMissingParamName (#261) — thanks @gnutix
  • Read inline-HTML indent in ArrayIndentation for .html.php parity (#272)
  • Make the lexer give the same tokens as token_get_all (#268) — thanks @gnutix
  • Default AlignMultilineComment to phpdocs_only, matching the engine (#252)

Option reading:

Performance and infrastructure:

  • Scan Doctrine annotations lazily (#276) — thanks @gnutix
  • NoUnusedImports, avoid rescans per import (#277) — thanks @gnutix
  • Let rules skip files without their trigger (#288) — thanks @gnutix
  • Add a stream version, to share work between rules (#279) — thanks @gnutix
  • Classify array brackets in one pass (#287) — thanks @gnutix
  • Delete empty tokens after each rule, and make per-cs the same list as ECS (#253) — thanks @gnutix
  • Measure blink coverage against the full fixer universe (#271)
  • Let projects register their own fixers (#251) — thanks @gnutix
  • Consolidate CI into fewer jobs (#293)

Don't miss a new ecs release

NewReleases is sending notifications on new releases.