react-command-bus/examples/local.php

34 lines
873 B
PHP

<?php
require_once __DIR__."/../vendor/autoload.php";
use NoccyLabs\React\CommandBus\CommandBus;
use NoccyLabs\React\CommandBus\CommandRegistry;
use NoccyLabs\React\CommandBus\Context;
use React\EventLoop\Loop;
use React\Promise\Promise;
$commands = new CommandRegistry();
$commands->register("hello", function (Context $context) {
return new Promise(function (callable $resolve) use ($context) {
Loop::addTimer(1, function () use ($context, $resolve) {
$resolve("Hello, {$context->name}");
});
});
});
$commands->register("hello2", function (Context $context) {
return "Hello2, {$context->name}";
});
$bus = new CommandBus($commands);
$bus->execute('hello', ['name'=>'Bob'])
->then(function ($result) {
var_dump($result);
});
$bus->execute('hello2', ['name'=>'Bob'])
->then(function ($result) {
var_dump($result);
});