laravel-mq/rabbit
Composer 安装命令:
composer require laravel-mq/rabbit
包简介
Reusable RabbitMQ integration using php-amqplib for Laravel apps.
README 文档
README
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
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
- Install the package via Composer:
composer require laravelmq/rabbit
- Publish the configuration file:
php artisan vendor:publish --tag=rabbitmq-config
- Add your RabbitMQ connection details to your
.envfile:
RABBITMQ_HOST=127.0.0.1 RABBITMQ_PORT=5672 RABBITMQ_USER=guest RABBITMQ_PASSWORD=guest RABBITMQ_VHOST=/
Basic Usage
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
Create a handler class that implements the QueueHandler interface:
<?php namespace App\Handlers; use LaravelMq\Rabbit\Contracts\QueueHandler; use PhpAmqpLib\Message\AMQPMessage; class OrderCreatedHandler implements QueueHandler { public function queue(): string { return 'orders.queue'; } public function schemaPath(): ?string { return resource_path('schemas/order-created.json'); } public function handle(AMQPMessage $message): void { $payload = json_decode($message->getBody(), true); Order::create($payload); } public function mode(): string { return 'rpc'; } }
Consuming Queues
Use the Artisan command to start consuming messages:
php artisan rabbitmq:consume php artisan rabbitmq:consume --queue=orders.queue,notifications.queue php artisan rabbitmq:consume --mode=rpc
统计信息
- 总下载量: 587
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-06-26