php-ddd / command
The command part of the Command Query Responsibility Segregation
Installs: 5 638
Dependents: 2
Suggesters: 0
Security: 0
Stars: 7
Watchers: 4
Forks: 1
Open Issues: 0
Requires
- php: >=5.3.3
- php-ddd/domain-event: ~1.0
Requires (Dev)
- fabpot/php-cs-fixer: dev-master
- phpunit/phpunit: 4.0.*
This package is not auto-updated.
Last update: 2024-11-09 17:40:24 UTC
README
This library provides some useful tools in order to create a simple command system.
How it works
// configuration $handler = new AddItemToChartCommandHandler(); $locator = new CommandHandlerLocator(); $locator->register('AddItemToChartCommand', $handler); $bus = new SequentialCommandBus($locator); // usage $command = new AddItemToChartCommand($item, $chart); $bus->dispatch($command); // internally, the bus will call the corresponding handler.
Conventions
We want to follow the Single Responsibility principle. Hence:
- A
CommandHandler
can only handle oneCommandInterface
- A
CommandBus
will only dispatch someCommandInterface
(and nothing more) - A
CommandHandlerLocator
is responsible of registering associations betweenCommand
andCommandHandler
It allows us to force some other conventions like the name of the CommandHandler
class that needs to match the
name of the Command
it handle. E.g: AddItemToChartCommand
will be handled by a AddItemToChartCommandHandler
object.