makinaårpus / message-broker
具有一些实现的意见化和简单的消息代理接口
Requires
- php: >=8.0
- makinacorpus/message: ^1.0.4
- makinacorpus/normalization: ^1.0.1 || ^2.0
- psr/log: ^1.0 || ^2.0 || ^3.0
Requires (Dev)
- makinacorpus/goat-query: ^3.0.4
- makinacorpus/goat-query-bundle: >=3.0
- phpunit/phpunit: ^9
- ramsey/uuid: ^3.8 || ^4.0
- symfony/config: ^5.4 || ^6.0
- symfony/console: ^5.4 || ^6.0
- symfony/event-dispatcher: ^4.4 || ^5.0 || ^6.0
- symfony/http-kernel: ^5.4 || ^6.0
- symfony/serializer-pack: ^1.0|^5.0
- symfony/yaml: ^5.4 || ^6.0
Suggests
- doctrine/dbal: For query builder usage over a Doctrine PDO connection
- doctrine/doctrine-bundle: For query builder usage over a Doctrine PDO connection
- makinacorpus/goat-query: For using PostgreSQL implementations of everything
- makinacorpus/goat-query-bundle: For using PostgreSQL implementations of everything
- symfony/serializer-pack: For better object serialisation and normalisation within the bus
README
意见化和简单的消息代理接口,以及一个稳定的工作和实现的PostgreSQL
该包本身可能对许多人来说可能不太有用,请考虑与 makinacorpus/corebus
包一起使用,它添加了有意义的意见化总线逻辑。
此实现是从 makinacorpus/goat
中提取的,并且是稳定的。
设置
首先,安装此包
composer install makinacorpus/message-broker
还建议选择一个 UUID 实现
composer install ramsey/uuid
或者
composer install symfony/uid
我们最喜欢的仍然是 ramsey/uuid
。
Symfony
如果您想使用 PostgreSQL 实现,请首先安装 makinacorpus/goat-query-bundle
Symfony 包。
composer install makinacorpus/goat-query-bundle
然后按照文档进行配置。
然后注册该包到您的 config/bundles.php
文件中
<?php return [ // ... Your other bundles. MakinaCorpus\MessageBroker\Bridge\Symfony\MessageBrokerBundle::class => ['all' => true], ];
重要说明:使用 Symfony 和 goat-query
实现,消息代理默认将使用 goat.runner.default
默认数据库连接。
如果您需要设置另一个连接,只需将其添加到 config/goat_query.yaml
文件中
parameters: # # Overrides the one from this bundle. # goat.runner.message_broker: alias: goat.runner.my_message_broker_connection goat_query: runner: # ... Your other connections, then: # # Your dedicated connection. # my_message_broker_connection: url: '%env(resolve:DATABASE_URL_MESSAGE_BROKER)%'
此库以后可能会演变为允许在容器中存在多个消息代理,每个代理对应一个队列,在这种情况下,环境变量将成为配置的主要位置。
另一个重要说明:使用 Symfony 和 goat-query
实现,消息代理实例将始终注册到名为 default
的队列。
这将在将来可配置,但现在还不是。
独立
这部分还没有文档说明,但基本上您需要做的就是创建一个实现 MessageBroker
的实例。
PostgreSQL 架构
如果您要使用 PostgreSQL 实现,请创建默认架构中必要的数据库表,请参阅 src/Adapter/GoatQuery/message-broker.pg.sql
文件。
使用方法
这部分还没有文档说明。
运行测试
在 sys/
文件夹中有一个包含各种容器和不同 PHP 版本的 Docker 环境。如果测试在所有 PHP 版本中失败,请运行 composer update --prefer-lowest
。
composer install composer update --prefer-lowest cd sys/ ./docker-rebuild.sh # Run this only once ./docker-run.sh
此外,生成覆盖率报告
./docker-coverage.sh
HTML 覆盖率报告将生成在 coverage
文件夹中。