Example #1
0
 /**
  * @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;
 }
Example #3
0
 /**
  * @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;
 }
Example #4
0
 /**
  * @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;
 }
Example #5
0
 /**
  * @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;
 }
Example #6
0
 /**
  * @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;
 }