| @@ 14-43 (lines=30) @@ | ||
| 11 | use GpsLab\Component\Command\Handler\CommandHandler; |
|
| 12 | use GpsLab\Component\Command\Command; |
|
| 13 | ||
| 14 | class DirectBindingCommandHandlerLocator implements CommandHandlerLocator |
|
| 15 | { |
|
| 16 | /** |
|
| 17 | * @var CommandHandler[] |
|
| 18 | */ |
|
| 19 | private $handlers = []; |
|
| 20 | ||
| 21 | /** |
|
| 22 | * Bind command handler to concrete command by class name. |
|
| 23 | * |
|
| 24 | * @param string $command_name |
|
| 25 | * @param CommandHandler $handler |
|
| 26 | */ |
|
| 27 | public function registerHandler($command_name, CommandHandler $handler) |
|
| 28 | { |
|
| 29 | $this->handlers[$command_name] = $handler; |
|
| 30 | } |
|
| 31 | ||
| 32 | /** |
|
| 33 | * @param Command $command |
|
| 34 | * |
|
| 35 | * @return CommandHandler|null |
|
| 36 | */ |
|
| 37 | public function getCommandHandler(Command $command) |
|
| 38 | { |
|
| 39 | $command_name = get_class($command); |
|
| 40 | ||
| 41 | return isset($this->handlers[$command_name]) ? $this->handlers[$command_name] : null; |
|
| 42 | } |
|
| 43 | } |
|
| 44 | ||
| @@ 14-43 (lines=30) @@ | ||
| 11 | use GpsLab\Component\Query\Handler\QueryHandler; |
|
| 12 | use GpsLab\Component\Query\Query; |
|
| 13 | ||
| 14 | class DirectBindingQueryHandlerLocator implements QueryHandlerLocator |
|
| 15 | { |
|
| 16 | /** |
|
| 17 | * @var QueryHandler[] |
|
| 18 | */ |
|
| 19 | private $handlers = []; |
|
| 20 | ||
| 21 | /** |
|
| 22 | * Bind query handler to concrete query by class name. |
|
| 23 | * |
|
| 24 | * @param string $query_name |
|
| 25 | * @param QueryHandler $handler |
|
| 26 | */ |
|
| 27 | public function registerHandler($query_name, QueryHandler $handler) |
|
| 28 | { |
|
| 29 | $this->handlers[$query_name] = $handler; |
|
| 30 | } |
|
| 31 | ||
| 32 | /** |
|
| 33 | * @param Query $query |
|
| 34 | * |
|
| 35 | * @return QueryHandler|null |
|
| 36 | */ |
|
| 37 | public function getQueryHandler(Query $query) |
|
| 38 | { |
|
| 39 | $query_name = get_class($query); |
|
| 40 | ||
| 41 | return isset($this->handlers[$query_name]) ? $this->handlers[$query_name] : null; |
|
| 42 | } |
|
| 43 | } |
|
| 44 | ||