PHP Version | Package version |
---|---|
PHP >= 8.2 | v2.0 |
PHP >= 8.0 | v1.1 |
This package propose abstract classes to manage Identities in DDD projects.
Builtin typed identities :
- integer based identities
- string based identities
- uuid based identities
Also:
- instance are readonly
- equality test
- request same identity twice return same object
Int Identity
final readonly class CarId extends AbstractIntIdentity {}
$id = CarId::from(25);
UUID Identity
use JeckelLab\IdentityContract\AbstractUuidIdentity;
final readonly class UserId extends AbstractUuidIdentity {}
$id = UserId::from("d2fbc6c0-0497-42f1-8ece-8840641b67f0");
// or
$id = UserId::new();
// Generating twice same identity return same object
$id1 = UserId::from("d2fbc6c0-0497-42f1-8ece-8840641b67f0");
$id2 = UserId::from("d2fbc6c0-0497-42f1-8ece-8840641b67f0");
var_dump($id1 === $id2); // true