Contract / Interfaces used by other packages and DDD projects
List of interfaces use as contract in other packages or DD projects
This contract includes some strong typings, object relation and psalm validation.
php >= 7.2.* and
php >= 8.0
|Release name||Branch name||Php Version|
|1.x||release/1.X||php >= 7.2 & php >= 8.0|
|2.x||master||php >= 8.0|
- CommandDispatcher: Define all contract for the command bus implementation with
- Dto: main Dto contract (empty for now, used to define typings)
- Entity: main Entity contract (empty for now, used to define typings)
- Event: Event contract, force immutability, used by
- Exception: Define a collection of Domain exceptions, all immutable
- Identity: Main contract for entity's Identities with exceptions, forced immutability and
- ValueObject: force immutability on ValueObject, implements
__toStringmethods. See psalm templating documentation for more info.
- Equality: define
equalmethod, required for Identity, but can be also use for entities and value objects.
- Exception: Define basics Infrastructure exceptions (with forced immutability)
- Clock: Define clock contract to return the current time as a mockable service
- Exception: Define basics Presentation exceptions (with forced immutability)
Please also read some Psalm documentation: