makinaårpus/message-broker

具有一些实现的意见化和简单的消息代理接口

2.0.4 2023-02-14 13:42 UTC

This package is auto-updated.

Last update: 2024-09-08 15:44:04 UTC


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 文件夹中。