vklymniuk / common-bus
Command bus.
This package's canonical repository appears to be gone and the package has been frozen as a result.
Installs: 501
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:php-library
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
Communication system that transfers message data between custom middleware.
Install
$ composer require symfony-ext/common-bus
Register the bundle:
// config/bundles.php return [ ... VKCommonBusBundle\VKCommonBusBundle::class => ['all' => true], ];
Create your bus
<?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; } }
Create bus middleware
<?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); } }
Register bus middleware handles
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'