Esempio n. 1
0
 /**
  * @param Identity $identity
  * @param EventStorage $eventStorage
  * @param Serializer $serializer
  */
 private function prepareSomeEvents(Identity $identity, EventStorage $eventStorage, Serializer $serializer)
 {
     // This is not the preferred way, but used for simplicity! You should use commands to achieve this.
     $event = new CreatedEvent($identity);
     $event->setVersion(1);
     $eventStorage->append(EventDescriptor::record($identity->getValue(), 'aggregateType', $event->getEventName(), $serializer->serialize($event), $event->getVersion()));
     $event = new DemonstratedEvent($identity);
     $event->setVersion(2);
     $eventStorage->append(EventDescriptor::record($identity->getValue(), 'aggregateType', $event->getEventName(), $serializer->serialize($event), $event->getVersion()));
 }
Esempio n. 2
0
 /**
  * @param Identity $sagaIdentity
  * @param string $sagaType
  * @return Saga
  */
 public function load(Identity $sagaIdentity, string $sagaType)
 {
     $sagaData = $this->storage->findById($sagaIdentity->getValue());
     if (empty($sagaData)) {
         return null;
     }
     return $this->serializer->deserialize($sagaData, $sagaType);
 }
 /**
  * @param Identity $aggregateId
  */
 public function __construct(Identity $aggregateId)
 {
     parent::__construct(sprintf(static::$messageTemplate, $aggregateId->getValue()));
 }
Esempio n. 4
0
 /**
  * @param Identity $aggregateId
  * @return Events
  * @throws AggregateNotFoundException
  */
 public function getEventsForAggregate(Identity $aggregateId) : Events
 {
     if (!$this->storage->contains($aggregateId->getValue())) {
         throw new AggregateNotFoundException($aggregateId);
     }
     $eventData = $this->storage->find($aggregateId->getValue());
     $events = array_map(function (EventDescriptor $data) : Event {
         return $this->serializer->deserialize($data->getPayload(), $this->eventMap->getClassByEventName($data->getEvent()));
     }, $eventData);
     return new Events($events);
 }