/** * @param object|IsEventSourced $aggregateRoot * * @return array */ private function getWriteableEventsFromAggregate($aggregateRoot) { $domainEvents = $aggregateRoot->extractRecordedEvents(); $eventsArray = []; foreach ($domainEvents as $event) { $metadata = []; if ($this->metadataStore) { $metadata = $this->metadataStore->metadata($event); } $eventsArray[] = WritableEvent::newInstance(get_class($event), $this->eventSerializer->serialize($event), $metadata); } return $eventsArray; }