command] = $handler; } $this->handlers = $handlerArray; } /*private function add(string $messageClass, object $handler): void { $this->handlers[$messageClass] = $handler; }*/ /** * @param class-string $commandClass * @return CommandHandlerDescriptor|null */ public function get(string $commandClass): ?CommandHandlerDescriptor { return $this->handlers[$commandClass] ?? null; } public function all(): array { return $this->toArray(); } public function getIterator(): Traversable { return new ArrayIterator($this->handlers); } public function count(): int { return count($this->handlers); } public function toArray(): array { return $this->handlers; } }