Skip to content

classPattern directive, allowInInstanceOf wildcards, param conditions in more places

Latest

Choose a tag to compare

@spaze spaze released this 28 Apr 23:54
v4.12.0
5b69dc0

New

  • classPattern param directive matches a parameter's declared class name against a wildcard pattern using fnmatch() (#412, docs example #417)
  • allowInInstanceOf/disallowInInstanceOf now support fnmatch() wildcard patterns (#399, docs example #417) and param conditions (#401)
  • Param conditions also work with allowExceptIn/allowExceptInMethods and their disallowIn* aliases (#414)
  • allowExceptParamsAnywhere and disallowParamsAnywhere aliases for allowExceptParams/disallowParams to match other *Anywhere directives (#410)

Bugfixes

  • typeString: descriptive exception on parse failure (#407)
  • Empty string in typeString now throws an exception, and '0' (a string consisting of 0) is now a valid typeString (#409)
  • First-class callable syntax (func(...)) with param conditions is now handled correctly (#418)
  • allowExceptInFunctions/allowExceptInMethods with multiple entries only checked the first one, not anymore (#405)

Internal changes

  • Added CLAUDE.md (#403, export-ignored in #413)
  • export-ignore phpstan-dead-code-detector.php from release archives (#413)