/** * @param Command $command */ public function handle(Command $command) { $commandName = get_class($command); $this->logger->info('Handle command', ['command' => $commandName, 'handler' => get_class($this)]); $user = User::create($command->getId()); $this->repository->store($user); }
/** * @param MarkItemDone $command */ public function handleMarkItemDone(MarkItemDone $command) { /* @var $item ToDoItem */ $item = $this->repository->findById($command->getIdentity()); $item->markDone($command); $this->repository->store($item); }
/** * @param ScenarioTest_DoThat $command */ public function handleScenarioTest_DoThat(ScenarioTest_DoThat $command) { $aggregate = $this->repository->findById($command->getId()); $aggregate->doThat($command); $this->repository->store($aggregate, $aggregate->getVersion()); }