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;
 }