First set of tests, argument unwrapping/injection
This commit is contained in:
@ -9,6 +9,7 @@ use React\EventLoop\Loop;
|
||||
use React\Promise\Promise;
|
||||
|
||||
$commands = new CommandRegistry();
|
||||
|
||||
// Register some function to call. The name here is "hello", and it will
|
||||
// receive a Context holding the call context. Any passed data will be
|
||||
// available as properties on the Context object.
|
||||
@ -21,23 +22,28 @@ $commands->register("hello", function (Context $context) {
|
||||
});
|
||||
});
|
||||
});
|
||||
$commands->register("hello2", function (Context $context) {
|
||||
|
||||
// Note how the arguments can be unwrapped. You can still add Context as
|
||||
// an argument to get the full context. Values will be cast to match the
|
||||
// type, so keep this in mind when feeding strings like 'false' into a
|
||||
// boolean argument. It is also a good idea to make the arguments nullable.
|
||||
$commands->register("hello2", function (?string $name, ?string $phrase, ?string $missing) {
|
||||
// Just returning the value works just fine!
|
||||
return "Hello2, {$context->name}";
|
||||
return "Greetings, {$name}. {$phrase} to you too!";
|
||||
});
|
||||
|
||||
// Create the bus
|
||||
$bus = new CommandBus($commands);
|
||||
|
||||
// And execute some commands!
|
||||
$bus->execute('hello', ['name'=>'Bob'])->then(
|
||||
function ($result) {
|
||||
$bus->execute('hello', ['name'=>'Bob'])
|
||||
->then(function ($result) {
|
||||
var_dump($result);
|
||||
}
|
||||
);
|
||||
|
||||
$bus->execute('hello2', ['name'=>'Bob'])->then(
|
||||
function ($result) {
|
||||
$bus->execute('hello2', ['name'=>'Bob','phrase'=>'Good day'])
|
||||
->then(function ($result) {
|
||||
var_dump($result);
|
||||
}
|
||||
);
|
||||
|
Reference in New Issue
Block a user