/** * @param Uuid $id * @param AddAuthor[] $authors * @param string $title * @param string $isbn * @return Book */ public static function add(Uuid $id, array $authors, $title, $isbn) { $instance = new self($id); $authorsAdded = array_map(function (AddAuthor $author) use($instance) { $authorAdded = new AuthorAdded($instance->id, $author->getFirstName(), $author->getLastName()); $instance->applyAuthorAdded($authorAdded); return $authorAdded; }, $authors); $instance->applyChange(new BookAdded($instance->getId(), $authorsAdded, $title, $isbn)); return $instance; }
/** * @param UserIdentifier $identifier * @param Username $username * @param HashedPassword $hashedPassword * * @return User */ public static function register(UserIdentifier $identifier, Username $username, HashedPassword $hashedPassword) { $user = new self(); $user->applyChange(new UserRegistered($identifier, $username, $hashedPassword, new \DateTime())); return $user; }
/** * @param Uuid $id * @param string $userName * @param string $emailAddress * @param string $fullName * @return User */ public static function create(Uuid $id, $userName, $emailAddress, $fullName) { $instance = new self($id); $instance->applyChange(new UserCreated($id, $userName, $emailAddress, $fullName)); return $instance; }
/** * @param CreateToDoItem $command * @return ToDoItem */ public static function create(CreateToDoItem $command) : self { $instance = new self(); $instance->applyChange(new ToDoItemCreated($command->getIdentity(), $command->getDescription(), $command->getExpireSeconds())); return $instance; }
/** * @param ScenarioTest_Create $command * @return ScenarioTest_Aggregate */ public static function create(ScenarioTest_Create $command) : self { $instance = new self(); $instance->applyChange(new ScenarioTest_Created($command->getId())); return $instance; }
/** * @param Identity $id * @return User */ public static function create(Identity $id) : self { $instance = new self($id); $instance->applyChange(new UserCreated($id)); return $instance; }
public static function create(AggregateRootIdentifierStub $identifier) { $instance = new self(); $instance->applyChange(new Created($identifier)); return $instance; }