Skip to content

Latest commit

 

History

History
73 lines (53 loc) · 1.08 KB

EVENT_RECORDING.md

File metadata and controls

73 lines (53 loc) · 1.08 KB

Back to index

Recording Events

Using EventRecorder

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();

Using EventRecorderCapabilities trait

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();