vklymniuk / common-bus
命令总线。
此包的规范存储库似乎已消失,因此该包已被冻结。
v0.0.1
2021-05-24 18:07 UTC
Requires
- php: >=7.4
- psr/log: ^1.1
Requires (Dev)
- roave/security-advisories: dev-master
This package is auto-updated.
Last update: 2021-11-28 14:02:13 UTC
README
在自定义中间件之间传输消息数据的通信系统。
安装
$ composer require symfony-ext/common-bus
注册组件
// config/bundles.php return [ ... VKCommonBusBundle\VKCommonBusBundle::class => ['all' => true], ];
创建您的总线
<?php namespace App\CommandBus; use VKCommonBusBundle\AbstractCommonBus; /** * Class MetadataCollectorCommonBus */ class MetadataCollectorCommonBus extends AbstractCommonBus { /** * @return string Supported Message class name */ public function supports(): string { return \App\Document\Metadata::class; } }
创建总线中间件
<?php use VKCommonBusBundle\Envelope; use VKCommonBusBundle\Middleware\MiddlewareInterface; use VKCommonBusBundle\Stack\StackInterface; /** * Class SearchMetadataMiddleware */ class SearchMetadataMiddleware implements MiddlewareInterface { /** * @inheritdoc */ public function handle(Envelope $envelope, StackInterface $stack): Envelope { /** @var \App\Document\Metadata $message */ $message = $envelope->getMessage(); // Your code return $stack->next()->handle($envelope, $stack); } }
注册总线中间件处理程序
App\CommonBus\MetadataCollectorCommandBus: arguments: $middlewareHandlers: - '@App\CommonBus\Middleware\SearchMetadataMiddleware' - '@App\CommonBus\Middleware\SearchMetadataMiddleware_1' - '@App\CommonBus\Middleware\SearchMetadataMiddleware_2' - '@App\CommonBus\Middleware\SearchMetadataMiddleware_3' - '@App\CommonBus\Middleware\SearchMetadataMiddleware_4'