vklymniuk/common-bus

命令总线。

此包的规范存储库似乎已消失,因此该包已被冻结。

安装: 501

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 0

分支: 0

开放问题: 0

类型:php-library

v0.0.1 2021-05-24 18:07 UTC

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'

享受!