/** * @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; }
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; }
/** * @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)); }
/** * @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); }
/** * @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; }