Почему нельзя создать событие удаления прямо в репозитории?
Зачем добавлять агрегату лишний метод remove и вызывать его перед вызовом repository::remove?
DDD, remove, aggregate event
Re: DDD, remove, aggregate event
Можно.
Чтобы в него при необходимости можно было поместить логику:
Код: Выделить всё
public function remove()
{
if ($this->isActive()) {
throw new \DomainException('Нельзя удалить активный заказ.');
}
$this->recordEvent(new OrderRemoved($this));
}
Код: Выделить всё
$order = $this->orders->get($command->id);
$order->remove();
$this->orders->remove($order);
Последний раз редактировалось ElisDN 2018.02.12, 17:23, всего редактировалось 1 раз.
Re: DDD, remove, aggregate event
Ну да, логично. Спасибо.