Пример #1
0
 /**
  * @param string $streamName
  * @param int $streamVersion
  */
 public function __construct($streamName, $streamVersion = 1)
 {
     Assert::argumentNotEmpty($streamName, 'Stream name is required');
     Assert::argumentNotEmpty($streamVersion, 'Stream version is required');
     $this->streamName = $streamName;
     $this->streamVersion = $streamVersion;
 }
Пример #2
0
 public function __construct(PDO $connection, EventSerializer $serializer, $tableName = 'event_store')
 {
     Assert::argumentNotEmpty($tableName, 'Table name is required.');
     $this->connection = $connection;
     $this->serializer = $serializer;
     $this->tableName = $tableName;
 }
Пример #3
0
 /**
  * @param string $userId
  * @param string $name
  * @param string $password
  */
 public function __construct($userId, $name, $password)
 {
     Assert::argumentNotEmpty($userId, 'User ID is required');
     Assert::argumentNotEmpty($name, 'User name is required');
     Assert::argumentNotEmpty($password, 'User password is required');
     $this->apply(new UserRegistered($userId, $name, $password));
 }
Пример #4
0
 /**
  * @param string $eventClassName
  * @param string $serialization
  * @return Event
  * @throws EventSourcingException when failed to deserialize
  */
 public function deserialize($eventClassName, $serialization)
 {
     Assert::argumentNotEmpty($eventClassName, 'Event class name is required');
     Assert::argumentClassExists($eventClassName, 'Event class does not exist: %class%');
     Assert::argumentSubclassOf($eventClassName, 'Goodby\\EventSourcing\\Event', 'Event class must be subclass of %parent%');
     $data = json_decode($serialization, true);
     if (json_last_error() != JSON_ERROR_NONE) {
         throw EventSourcingException::failedToDeserializeEvent($this->getLastErrorMessage());
     }
     /** @var $eventClassName Event */
     return $eventClassName::fromContractualData($data);
 }
Пример #5
0
 /**
  * @param string $eventId
  * @param Event $event
  */
 public function __construct($eventId, Event $event)
 {
     Assert::argumentNotEmpty($eventId, 'Event ID is required');
     $this->eventId = $eventId;
     $this->event = $event;
 }