Esempio n. 1
0
 public function onDescriptionChangedThird(EventMessage $message)
 {
     $metaData = $message->metaData();
     $metaData->set('third', true);
     $domainEvent = $message->payload();
     $this->description = $domainEvent->description();
 }
Esempio n. 2
0
 /**
  * {@inheritdoc}
  */
 public function appendEvent(EventMessage $eventMessage)
 {
     $id = $eventMessage->aggregateId()->toString();
     $type = $eventMessage->aggregateType()->toString();
     if (!isset($this->streamData[$type])) {
         $this->streamData[$type] = [];
     }
     if (!isset($this->streamData[$type][$id])) {
         $this->streamData[$type][$id] = new StreamData();
     }
     $version = $eventMessage->sequence();
     if ($version === 0) {
         $expected = null;
     } else {
         $expected = $version - 1;
     }
     if ($this->streamData[$type][$id]->getVersion() !== $expected) {
         $found = $this->streamData[$type][$id]->getVersion();
         $message = sprintf('Expected v%s; found v%s in stream [%s]{%s}', $expected, $found, $type, $id);
         throw ConcurrencyException::create($message);
     }
     $event = new StoredEvent($eventMessage);
     $this->streamData[$type][$id]->addEvent($event);
     $this->streamData[$type][$id]->setVersion($version);
 }
Esempio n. 3
0
 public function onUserRegistered(EventMessage $message)
 {
     /** @var UserRegisteredEvent $event */
     $event = $message->payload();
     $email = $event->email();
     $this->users[$email] = $event->toArray();
 }
Esempio n. 4
0
 /**
  * {@inheritdoc}
  */
 public function dispatch(EventMessage $message)
 {
     $eventType = ClassName::underscore((string) $message->payloadType());
     foreach ($this->getHandlers($eventType) as $handler) {
         call_user_func($handler, $message);
     }
     foreach ($this->getHandlers(Subscriber::ALL_EVENTS) as $handler) {
         call_user_func($handler, $message);
     }
 }
Esempio n. 5
0
 /**
  * {@inheritdoc}
  */
 public function dispatch(Event $event)
 {
     $message = EventMessage::create($event);
     $eventType = ClassName::underscore($event);
     foreach ($this->getHandlers($eventType) as $handler) {
         call_user_func($handler, $message);
     }
     foreach ($this->getHandlers(EventSubscriber::ALL_EVENTS) as $handler) {
         call_user_func($handler, $message);
     }
 }
Esempio n. 6
0
 /**
  * Constructs StoredEvent
  *
  * @param EventMessage $message The event message
  */
 public function __construct(EventMessage $message)
 {
     $this->aggregateId = $message->aggregateId()->toString();
     $this->aggregateIdType = Type::create($message->aggregateId())->toString();
     $this->aggregateType = $message->aggregateType()->toString();
     $this->messageId = $message->messageId()->toString();
     $this->timestamp = $message->timestamp()->toString();
     $this->payload = serialize($message->payload());
     $this->payloadType = $message->payloadType()->toString();
     $this->metaData = serialize($message->metaData());
     $this->sequence = $message->sequence();
 }
Esempio n. 7
0
 /**
  * {@inheritdoc}
  */
 public function dispatch(EventMessage $message)
 {
     $this->lazyLoad(ClassName::underscore((string) $message->payloadType()));
     return parent::dispatch($message);
 }
Esempio n. 8
0
 public function onAllEvents(EventMessage $message)
 {
     $this->logs[] = $message->toString();
 }
Esempio n. 9
0
 public function test_that_hash_value_returns_expected_value()
 {
     $this->assertSame($this->message->toString(), $this->message->hashValue());
 }
Esempio n. 10
0
 /**
  * Logs the event message
  *
  * @param EventMessage $message The event message
  *
  * @return void
  */
 public function logEvent(EventMessage $message)
 {
     $name = $message->payloadType()->toString();
     $this->logger->info(sprintf('Event dispatched {%s}', $name), ['message' => $message->toString()]);
 }