/** * @param Serializable $payload * * @return Command */ public function createFromPayload(Serializable $payload) { $contract = $this->contractFactory->createFromObject($payload); $commandName = $contract->className(); $messageIdentifier = $this->messageIdentifierFactory->generate(); return new GenericCommand($commandName, $messageIdentifier, $payload, new Metadata(), $this->contractFactory); }
/** * @param Serializable $payload */ public function addEventFromPayload(Serializable $payload) { $event = $this->eventFactory->create($this->aggregateRootIdentifier, $this->nextSequenceNumber(), $this->messageIdentifierFactory->generate(), $payload); $this->addEvent($event); }