PHPackages                             dojiland/amqp-laravel - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Queues &amp; Workers](/categories/queues)
4. /
5. dojiland/amqp-laravel

ActiveLibrary[Queues &amp; Workers](/categories/queues)

dojiland/amqp-laravel
=====================

PHP RabbitMQ client for Laravel &amp;&amp; Lumen

v0.1.5(5y ago)3606MITPHPPHP ^7.3

Since Feb 2Pushed 5y ago2 watchersCompare

[ Source](https://github.com/dojiland/amqp-laravel)[ Packagist](https://packagist.org/packages/dojiland/amqp-laravel)[ RSS](/packages/dojiland-amqp-laravel/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (1)Dependencies (4)Versions (7)Used By (0)

About amqp-laravel
==================

[](#about-amqp-laravel)

基于 [php-amqplib / php-amqplib](https://github.com/php-amqplib/php-amqplib) 针对 Laravel &amp;&amp; Lumen 框架封装 [Rabbitmq](https://www.rabbitmq.com) 的调用方法，方便业务开发.

Setup
-----

[](#setup)

本地先安装 [composer](https://getcomposer.org), 执行以下命令加载库:

```
composer require dojiland/amqp-laravel

```

创建配置文件，执行生成 `config/amqp.php` 配置文件:

```
php artisan amqp:init

```

`.env` 添加 AMQP 配置项:

```
AMQP_HOST=localhost
AMQP_PORT=5672
AMQP_USER=guest
AMQP_PASSWORD=guest

```

### Laravel

[](#laravel)

Laravel 版本 &gt;= 5.5, 会自动 package-discover，无需操作.

less than 5.5 add this to the providers array in `config/app.php`

```
Dojiland\Amqp\AmqpServiceProvider::class

```

### Lumen

[](#lumen)

add this in `bootstrap/app.php`

```
$app->register(Dojiland\Amqp\AmqpServiceProvider::class);

```

Usage
-----

[](#usage)

PS: 目前只限制使用 [Fanout Exchange](https://www.rabbitmq.com/tutorials/tutorial-three-php.html), 默认配置使用消息持久化和ACK.

### 注册消费异常回调

[](#注册消费异常回调)

在某个初始化过程中，调用如下代码，实现自己的消费失败回调逻辑， 如 `app/Providers/AppServiceProvider` 的 `boot` 方法，增加 sentry 通知。

```
/**
* 含义说明
* $context = [
*    // amqp exchange
*    'exchange'  => '',
*    // amqp queue
*    'queue'     => '',
*    // amqp body (业务消息文本)
*    'payload'   => '',
* ]
*/
// amqp 消费异常上报
\Dojiland\Amqp\Events\AmqpEvent::registerConsumeFailedListener(function (\Throwable $e, array $context) {
    app('sentry')->captureException($e);
    // ...
});

```

### Publish

[](#publish)

```
