-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path1-beginner-standard-usage.php
38 lines (31 loc) · 1.17 KB
/
1-beginner-standard-usage.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
require __DIR__ . '/../vendor/autoload.php';
use Tactician\CommandBus\Handler\MethodNameInflector\HandleClassNameInflector;
use Tactician\CommandBus\Handler\Locator\InMemoryLocator;
use Tactician\CommandBus\Command;
// Our example Command and Handler. ///////////////////////////////////////////
class RegisterUserCommand implements Command
{
public $emailAddress;
public $password;
}
class RegisterUserHandler
{
public function handleRegisterUserCommand(RegisterUserCommand $command)
{
// Do your core application logic here. Don't actually echo stuff. :)
echo "User {$command->emailAddress} was registered!\n";
}
}
// Setup the bus, normally in your DI container ///////////////////////////////
$locator = new InMemoryLocator();
$locator->addHandler(new RegisterUserHandler(), RegisterUserCommand::class);
$commandBus = new Tactician\CommandBus\HandlerExecutionCommandBus(
$locator,
new HandleClassNameInflector()
);
// Controller Code ////////////////////////////////////////////////////////////
$command = new RegisterUserCommand();
$command->emailAddress = '[email protected]';
$command->password = 'secret';
$commandBus->execute($command);