phpgears/cqrs-tactician

使用 League Tactician 实现CQRS

0.4.1 2019-10-05 11:29 UTC

This package is auto-updated.

Last update: 2024-08-25 06:05:36 UTC


README

PHP version Latest Version License

Build Status Style Check Code Quality Code Coverage

Total Downloads Monthly Downloads

使用 Tactician 实现 CQRS

使用 League Tactician 实现CQRS

安装

Composer

composer require phpgears/cqrs-tactician

使用方法

需要 composer 自动加载文件

require './vendor/autoload.php';

命令总线

use Gears\CQRS\Tactician\CommandBus;
use Gears\CQRS\Tactician\CommandHandlerMiddleware;
use League\Tactician\CommandBus as TacticianBus;
use League\Tactician\Handler\Locator\InMemoryLocator;
use League\Tactician\Plugins\LockingMiddleware;

$commandToHandlerMap = [];
        
$tacticianBus = new TacticianBus([
    new LockingMiddleware(),
    new CommandHandlerMiddleware(new InMemoryLocator($commandToHandlerMap)),
]);

$commandBus = new CommandBus($tacticianBus);

/** @var \Gears\CQRS\Command $command */
$commandBus->handle($command);

查询总线

use Gears\CQRS\Tactician\QueryBus;
use Gears\CQRS\Tactician\QueryHandlerMiddleware;
use League\Tactician\CommandBus as TacticianBus;
use League\Tactician\Handler\Locator\InMemoryLocator;
use League\Tactician\Plugins\LockingMiddleware;

$queryToHandlerMap = [];
        
$tacticianBus = new TacticianBus([
    new LockingMiddleware(),
    new QueryHandlerMiddleware(new InMemoryLocator($queryToHandlerMap)),
]);

$queryBus = new QueryBus($tacticianBus);

/** @var \Gears\CQRS\Query $query */
$result = $queryBus->handle($query);

贡献

发现了一个错误或者有功能请求?请打开一个新的问题。在打开之前请查看现有的问题。

请参阅 CONTRIBUTING.md 文件

许可证

请参阅源代码中包含的 LICENSE 文件以获取许可证条款的副本。