PHPackages                             laravel-mq/rabbit - 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. [HTTP &amp; Networking](/categories/http)
4. /
5. laravel-mq/rabbit

ActiveLibrary[HTTP &amp; Networking](/categories/http)

laravel-mq/rabbit
=================

Reusable RabbitMQ integration using php-amqplib for Laravel apps.

11.2k↑53.6%[1 PRs](https://github.com/laravel-mq/rabbit/pulls)PHP

Since Jan 23Pushed 3mo ago1 watchersCompare

[ Source](https://github.com/laravel-mq/rabbit)[ Packagist](https://packagist.org/packages/laravel-mq/rabbit)[ RSS](/packages/laravel-mq-rabbit/feed)WikiDiscussions main Synced yesterday

READMEChangelogDependenciesVersions (2)Used By (0)

Laravel RabbitMQ Package
========================

[](#laravel-rabbitmq-package)

A simple and lightweight RabbitMQ integration package for Laravel applications. This package provides an easy way to publish messages to RabbitMQ exchanges and consume messages from queues with built-in JSON schema validation.

What it does
------------

[](#what-it-does)

This package gives you:

- **Message Publishing**: Send messages to RabbitMQ exchanges with routing keys
- **Queue Consumption**: Consume messages from queues with automatic acknowledgment
- **RPC Support**: Handle request-response patterns
- **Schema Validation**: Validate message payloads against JSON schemas
- **Console Commands**: Easy-to-use Artisan commands for consuming queues

Installation
------------

[](#installation)

1. Install the package via Composer:

```
composer require laravelmq/rabbit
```

2. Publish the configuration file:

```
php artisan vendor:publish --tag=rabbitmq-config
```

3. Add your RabbitMQ connection details to your `.env` file:

```
RABBITMQ_HOST=127.0.0.1
RABBITMQ_PORT=5672
RABBITMQ_USER=guest
RABBITMQ_PASSWORD=guest
RABBITMQ_VHOST=/
```

Basic Usage
-----------

[](#basic-usage)

### Publishing Messages

[](#publishing-messages)

```
use LaravelMq\Rabbit\Contracts\PublisherInterface;

class OrderController extends Controller
{
    public function store(Request $request, PublisherInterface $publisher)
    {
        $publisher->publish(
            'orders.exchange',
            ['order_id' => 123, 'status' => 'created'],
            'order.created',
            base_path('schemas/order.schema.json')
        );
    }
}
```

### Creating Queue Handlers

[](#creating-queue-handlers)

Create a handler class that implements the `QueueHandler` interface:

```
