alive2212 / laravel-amqp
{这是php-amqplib包装器的anik/amqp包的分支,简化了RabbitMQ的使用。轻松使用RabbitMQ的方式}
1.5.4
2021-01-18 11:51 UTC
Requires
- php: >=7.0
- illuminate/container: ^5.8|^6.0|^7.0|^8.0
- illuminate/pipeline: ^5.8|^6.0|^7.0|^8.0
- illuminate/support: ^5.8|^6.0|^7.0|^8.0
- laravel/helpers: ^1.2
- php-amqplib/php-amqplib: ^2.9 !=2.12.0
README
这是为了我们的使用而 fork anik/amqp。在这个包中,我们将 'resolveConnectionName' 和 'getConnection' 方法更改为公共方法,以便自定义我们的通道、队列和交换。衷心感谢 anik/amqp
anik/amqp
anik/amqp
是一个php-amqplib包装器,简化了RabbitMQ的使用。轻松使用RabbitMQ的方式。
您可以使用此包与以下内容一起使用
需求
此包需要以下内容
- php >= 7.0
- ext-bcmath
- ext-sockets
安装
该包与Laravel、Lumen和Laravel zero一起工作。通过composer安装。
composer require anik/amqp
对于Laravel
服务提供程序将自动注册。或者您可以在您的 config/app.php
提供者数组中手动添加服务提供程序
'providers' => [ /// ... Anik\Amqp\ServiceProviders\AmqpServiceProvider::class, ]
- 使用以下命令添加配置文件
amqp.php
到您的配置目录。
php artisan vendor:publish --provider="Anik\Amqp\ServiceProviders\AmqpServiceProvider"
对于Lumen
- 在您的
bootstrap/app.php
文件中添加服务提供程序。
$app->register(Anik\Amqp\ServiceProviders\AmqpServiceProvider::class);
- 通过从
vendor/anik/amqp/src/config/amqp.php
复制它,将配置amqp.php
添加到您的配置目录。别忘了在您的bootstrap/app.php
中添加$app->configure('amqp');
。
注意: 对于Lumen,您不需要启用Facade。
对于Laravel Zero
- 在您的
config/app.php
提供者数组中添加提供程序。
'providers' => [ /// ... Anik\Amqp\ServiceProviders\AmqpServiceProvider::class, ]
- 通过从
vendor/anik/amqp/src/config/amqp.php
复制它,将配置amqp.php
添加到您的配置目录。
用法
- 要发布消息
<?php // AmqpManager::publish($msg, $routing, $config); app('amqp')->publish('Message to direct exchange', 'routing-key', [ 'exchange' => [ 'type' => 'direct', 'name' => 'direct.exchange', ], ]);
- 要消费消息
<?php use Anik\Amqp\ConsumableMessage; // AmqpManager::consume($consumerHandler, $bindingKey, $config); app('amqp')->consume(function (ConsumableMessage $message) { echo $message->getStream() . PHP_EOL; $message->getDeliveryInfo()->acknowledge(); }, 'routing-key', [ 'connection' => 'my-connection-name', 'exchange' => [ 'type' => 'direct', 'name' => 'direct.exchange', ], 'queue' => [ 'name' => 'direct.exchange.queue', 'declare' => true, 'exclusive' => false, ], 'qos' => [ 'enabled' => true, 'qos_prefetch_count' => 5, ], ]);
文档
此包的完整文档已撰写在 这篇文章中
问题 & PR
人非圣贤,孰能无过。
- 如果该包生成任何问题,请报告。提及重现步骤。
- 如果您的PR丰富了该包或解决了任何现有问题,我会将其合并。