spekkionu/domain-dispatcher

Domain command dispatcher

Maintainers

👁 spekkionu

Package info

github.com/spekkionu/domain-dispatcher

pkg:composer/spekkionu/domain-dispatcher

Statistics

Installs: 25

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.0 2016-10-19 16:33 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 2d72bbfb87be404af1d40558d0b17a6f3899395f

commanddispatcherjobbusspekkionudomain-dispatcher

This package is auto-updated.

Last update: 2026-06-12 17:04:46 UTC


README

👁 Latest Stable Version
👁 Build Status
👁 Code Coverage
👁 Scrutinizer Code Quality
👁 SensioLabsInsight

Command dispatcher that integrates with league/container.

Install

Via Composer

$ composer require spekkionu/domain-dispatcher

Usage

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

$container->addServiceProvider('Spekkionu\DomainDispatcher\DispatcherServiceProvider');

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

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

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);

Testing

$ composer test

License

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