zelenin / message-bus
轻量级消息总线
0.0.3
2017-07-07 16:53 UTC
Requires
- php: >=7.0
- doctrine/annotations: ~1.2
Requires (Dev)
- phpunit/phpunit: ~6.0
- satooshi/php-coveralls: ~1.0.0
This package is not auto-updated.
Last update: 2024-09-15 02:22:07 UTC
README
安装
Composer
安装此扩展的首选方式是通过 Composer。
运行
php composer.phar require zelenin/message-bus "~0.0.1"
或添加
"zelenin/message-bus": "~0.0.1"
到你的 composer.json
的 require 部分
使用方法
示例
$handlers = [ CreatePost::class => new CreatePostHandler($postRepository) ]; $middlewares = [ new HandlerMiddleware(new MemoryLocator($handlers)) ]; $commandBus = new MiddlewareBus(new MiddlewareStack($middlewares)); $message = new CreatePost('Post title', 'Post content'); $context = $commandBus->handle($message);
ProviderLocator
$provider = new AnnotationProvider(__DIR__ . '/src'); if ($isProduction) { $provider = new CacheProvider(__DIR__ . '/data/handlers-cache.php', $provider); } $locator = new ProviderLocator($provider, new ContainerHandlerResolver($container)); return new MiddlewareBus(new MiddlewareStack([ new HandlerMiddleware($locator), ]));
ContainerHandlerResolver
可用于支持 PSR-11 Container。
上下文
消息总线使用不可变的 Context
通过中间件传输数据,并将其返回给消费者。