mj-zana / ddd
Domain-Driven Design building blocks for Zana applications
v1.0.1
2026-08-09 13:03 UTC
Requires
- php: ^8.1
Requires (Dev)
- phpunit/phpunit: ^10.5
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Domain-Driven Design building blocks for Zana applications.
Purpose
mj-zana/ddd contains the shared DDD base types used across application modules:
Zana\Ddd\Application\Command— CQRS command base classZana\Ddd\Application\Query— CQRS query base classZana\Ddd\Domain\Entity— entity with identityZana\Ddd\Domain\AggregateRoot— aggregate root with versioning + domain eventsZana\Ddd\Domain\ValueObject— immutable value objectZana\Ddd\Domain\DomainEvent— domain event base class
These are framework-level abstractions. They have no external dependencies, so the package can be installed independently.
Install
composer require mj-zana/ddd
Usage
use Zana\Ddd\Domain\AggregateRoot; use Zana\Ddd\Application\Command; final class CreateUser extends Command { public function __construct(public readonly string $name) { parent::__construct(); } } final class User extends AggregateRoot { public function rename(string $name): void { /* ... */ } }