for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
/**
* GpsLab component.
*
* @author Peter Gribanov <[email protected]>
* @copyright Copyright (c) 2011, Peter Gribanov
* @license http://opensource.org/licenses/MIT
*/
namespace GpsLab\Component\Command\Bus;
use GpsLab\Component\Command\Command;
use GpsLab\Component\Command\Exception\HandlerNotFoundException;
use GpsLab\Component\Command\Handler\Locator\CommandHandlerLocator;
class HandlerLocatedCommandBus implements CommandBus
{
* @var CommandHandlerLocator
private $locator;
* @param CommandHandlerLocator $locator
public function __construct(CommandHandlerLocator $locator)
$this->locator = $locator;
}
* @param Command $command
public function handle(Command $command): void
$handler = $this->locator->findHandler($command);
if (!is_callable($handler)) {
throw HandlerNotFoundException::notFound($command);
$handler($command);