/** * @param array $events * @return AggregateRoot */ private function getAggregate(array $events = []) : AggregateRoot { if ($this->aggregate == null) { $this->aggregate = $this->factory->createAggregate(Identity::createNew(), new Events($events)); } return $this->aggregate; }
/** * @param Identity $aggregateIdentity * @return AggregateRoot */ public function findById(Identity $aggregateIdentity) : AggregateRoot { $events = $this->eventStore->getEventsForAggregate($aggregateIdentity); return $this->factory->createAggregate($aggregateIdentity, $events); }