yuko / ddd-helper
common classes and interfaces to architect ddd
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/yuko/ddd-helper
Requires
- php: >=7.4.0
This package is auto-updated.
Last update: 2025-12-17 23:01:18 UTC
README
Общие классы и интерфейсы для использования при проектировании ДДД сущностей
Почему в папке инфраструктуры - для использования в контекстах, чтобы каждый контекст мог их использовать без постоянного копипаста
- Model\AggregateRoot.php
Интерфейс, который должны имплементировать сущности-агрегаты. Только агрегаты должны иметь возможность релизить и записывать доменные ивенты, поэтому данный интерфейс имеет функцию releaseEvents, которую должны имплементировать сущности-агрегаты.
- Model\EventTrait.php
Trait с реализацией методов recordEvent и releaseEvents, подключается в сущности агрегаты, recordEvent вызываются по необходимости записи ивентов после изменения состояния сущности, releaseEvents вызывается после сохранения изменений состояния агрегата в базу
- Model\EntityNotFoundException.php
Доменный exception используется как доменное сообщение в бизнес-логике, NotFound очень важно, но могут быть и другие типы, например EntityAlreadyExists и.т.д
- Model\Flusher.php
Интерфейс варианта сохранения изменений сущности в базу на основе Unit of Work (например как у доктрины)
- Model\DomainEventDispatcher
Интерфейс реализации запуска ивентов после сохранения сущности агрегата в базу