Что в этом коде недетерминированного, или неявного?PHP:try { $user = $userRepository->create($req->getBody()); $user->addPhone(...); $trx->commit(); $res->redirect('profile', ['id' => $user->getId()]); } catch (\Exception $e) { $trx->rollback(); throw $e; }
In particular CQRS should only be used on specific portions of a system (a Bounded Context in DDD lingo) and not the system as a whole. In this way of thinking, each Bounded Context needs its own decisions on how it should be modeled.
Фаулер утверждает следующее: CQRS — это сложно, применять нужно только в определённых контекстах. Ты говоришь: товар-корзина в одном контексте, поэтому CQRS тут применять глупо. Логика?строить отношения товар-корзина, через cqrs глупо, ибо это один контекст и один домен
противоречит словам Фаулера полностью.cqrs глупо, ибо это один контекст и один домен
The mainstream ... is a CRUD datastore.
As our needs become more sophisticated we steadily move away from that model.
... in more complicated domains, having the same conceptual model for commands and queries leads to a more complex model that does neither well.

Добавление товара в корзину — это не создание новой сущности. О каком id идёт речь?пользователь ткнул добавит товар в корзину, отправился запрос, пришел ответ с сервера 204, js добавил товар в плашку с корзиной, нафига тут id?
Да видали уже такой подход, и я солидарен вот с этим чуваком: https://groups.google.com/forum/#!s...0controller/dddinphp/PoUdMKdqMuE/ZYZlpyrdwa4Jhttps://github.com/qandidate-labs/b...xamples/command-handling/command-handling.php
намекну, то, что внизу, должно быть в контроллере![]()
final class User
{
public function register($id, UserName $name, Email $email, ...)
{
$user = new self(...);
$user->record(new UserHasRegisteredEvent($this->id));
$user->onModeration();
return $user;
}
private function onModeration()
{
$this->status = Status::onModeration();
$this->record(new UserHasBeenSentOnModerationEvent($this->id));
}
}
строить отношения товар-корзина, через cqrs глупо
Ладно, на пальцах,
<...>
кровь из носа нужно вернуть на клиент id, да еще и в вебе?
ну так и делайте блин через контроллер, команда отработала, эвент запустился, контроллер вернул результат
Я нигде такого не говорил, мне нравится подход с генерацией uuid на клиенте, возможно, даже больше.И я не понял: это ты это «на пальцах» объяснял, что нафиг не нужно генерировать id до команды? AUTO_INCREMENT рулит? Серьезно?
так вон Матиаз показывает в той же ссылке (у него кстати классный доклад есть про CRUD головного мозга, найти?)Покажи аналог без $id, c AUTO_INCREMENT.