Domain command dispatcher

1.0.0 2016-10-19 16:33 UTC

This package is auto-updated.

Last update: 2022-06-12 08:22:12 UTC


Latest Stable Version Build Status Code Coverage Scrutinizer Code Quality SensioLabsInsight

Command dispatcher that integrates with league/container.


Via Composer

$ composer require spekkionu/domain-dispatcher


You must first register the service provider in your league/container instance.


Then you can use the dispatcher by pulling it out of the container.

$container = new \League\Container\Container();
    new \League\Container\ReflectionContainer
$dispatcher = $container->get('Spekkionu\DomainDispatcher\Dispatcher');
$command = new MyCommand($var1, $var2);

Writing a command

class MyCommand
     * @var User
    private $user;
     * You can add any arguments you need to the constructor
    public function __construct(User $user)
        $this->user = $user;
     * The command must have a handle method.
     * Any dependencies for the handle method will be automatically resolved by the container
     * Whatever you return here will be returned by the dispatch call
    public function handle(EmailSender $mailer, Logger $logger)
        // Your code goes here
        $result = $mailer->sendWelcomeEmail($user);
        $logger->log('Welcome email sent to user');
        return $result;
$user = new User();
$user->name = 'Bob';
$user->email = 'email@example.com';

$command = new MyCommand($user);
$result = $dispatcher->dispatch($command);


$ composer test


The MIT License (MIT). Please see License File for more information.