Skip to content

patchlevel/event-sourcing-phpstan-extension

Repository files navigation

Latest Stable Version License

event-sourcing-phpstan-extension

"PHPStan that understands your aggregates and catches event sourcing mistakes before runtime."

Features

  • Property initialization for aggregate roots and child aggregates, so PHPStan does not report false uninitialized property errors.
  • Unused properties are reported when no apply method writes them, because such a property can never receive state from an event.
  • Write only properties are reported when apply methods store state that is never read, because state that is not used to check invariants belongs in a projection.
  • Recording in apply methods is reported as an error, because recording events while replaying them leads to duplicated events.
  • Writing state outside apply methods is reported as an error, because state that is not derived from an event is lost when the aggregate is reloaded.

Installation

composer require --dev patchlevel/event-sourcing-phpstan-extension

If you use phpstan/extension-installer, the extension is registered automatically. Otherwise register it in your phpstan.neon:

includes:
    - vendor/patchlevel/event-sourcing-phpstan-extension/extension.neon

Documentation

Integration

Contributing

We are open to contributions as long as they are in line with our BC-Policy.

Also note that the composer.lock is always generated with the newest supported PHP version as this is the version our tools run in the CI.

About

phpstan extension for event-sourcing library.

Resources

License

Stars

1 star

Watchers

2 watching

Forks

Packages

 
 
 

Contributors