Use record
method to register your Events, and then release them with releaseEvents
method:
// ..
$event = new Event(
$uuid,
$type,
$body
);
$eventRecorder = new EventRecorder();
$eventRecorder->record($event);
// ..
$eventRecorder->releaseEvents();
Consider this example:
class DummyEntity
{
use EventRecorderCapabilities;
private $id;
private $name;
private $email;
public function __construct(
$id,
$name,
$email
)
{
$this->id = $id;
$this->name = $name;
$this->email = $email;
$this->record(
new DummyEntityWasCreated($this)
);
}
}
// ...
class DummyEntityWasCreated extends Event
{
}
Finally, to release events:
$dummyEntity = new DummyEntity(
23,
'John Doe',
'johndoe@gmail.com'
);
$releasedEvents = $dummyEntity->releaseEvents();