Skip to content

Released: StructArmed 0.13.0

Choose a tag to compare

@samsonasik samsonasik released this 13 Jun 05:27
0.13.0
5357b21

ci build PHPStan

StructArmed 0.13.0

This release improves inheritance-aware architecture analysis. StructArmed can now resolve recursive class and interface ancestry.

For example, this now resolves correctly:

class A extends B {}
class B extends C {}
class C implements \Psr\Http\Server\MiddlewareInterface {}

A is now treated as implementing \Psr\Http\Server\MiddlewareInterface.

One example is ClassImplementingInterfaceMustHaveSuffixRule, which now applies to a class that extends another class, which eventually implements \Psr\Http\Server\MiddlewareInterface.

This keeps PSR-15 suffix checks compatible with custom middleware and request-handler abstractions before they reach the root PSR interfaces.

What's Changed

  • Bump to phpstan ^2.2 by @samsonasik in #155
  • chore: define layer and ruleSet on src/ itself, ensure future follow current architecture by @samsonasik in #156
  • chore: use + syntax sugar when posible by @samsonasik in #157
  • [experiment] Add recursive parent/interface lookup to ClassNode by @samsonasik in #159

Full Changelog: 0.12.6...0.13.0