usmonaliyev/laravel-simple-rabbitmq 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

usmonaliyev/laravel-simple-rabbitmq

最新稳定版本:1.2.0

Composer 安装命令:

composer require usmonaliyev/laravel-simple-rabbitmq

包简介

This package provides simple usage of rabbitmq.

README 文档

README

laravel-simple-rabbitmq

The package for simplified RabbitMQ usage, supporting multiple connections, easy publishing, and consumer mode.

Documentation

Key Features

  • Multiple Connections: Effortlessly manage multiple RabbitMQ connections within the same application.

  • Exchange supporting: You can push messages to exchanges

  • Message Publishing: Easily publish messages to queues and exchange with a fluent, chainable syntax.

  • Consumer Mode: Enable consumers to receive and process messages from queues in real time.

  • Manage queues and exchanges in config file: You can register queues and exchanges in config/simple-mq.php and define them in easy way which is amqp:define-queues command.

Installation

You can install the package via composer:

composer require usmonaliyev/laravel-simple-rabbitmq

Next step you must publish config and action register files:

php artisan vendor:publish --provider="Usmonaliyev\SimpleRabbit\SimpleRabbitMQServiceProvider"

As a result of this command, you will have a configuration file config/simple-mq.php and a registry file routes/amqp-handlers.php.

The config/simple-mq.php config file contains RabbitMQ connections with credentials, queues, default connection and default queue.

The next stage is configure .env file.

SIMPLE_MQ_CONNECTION= SIMPLE_MQ_QUEUE= SIMPLE_MQ_HOST= SIMPLE_MQ_PORT= SIMPLE_MQ_USERNAME= SIMPLE_MQ_PASSWORD= 

Usage

The package can publish and consume messages

Publishing

You can publish a message with default connection and default queue:

<?php use Illuminate\Http\Request; use Usmonaliyev\SimpleRabbit\Facades\SimpleMQ; class FooController { public function createFoo(Request $request) { // Something.. SimpleMQ::queue('foo-queue') ->setBody(['name' => 'First Foo']) ->handler('create-foo') ->publish(); return response()->json(['message' => 'OK']); } }

Also, exchange function publish message to RabbitMq exchange:

<?php namespace App\Https\Controllers; use Illuminate\Http\Request; use Usmonaliyev\SimpleRabbit\Facades\SimpleMQ; class FooController { public function createFoo(Request $request) { // Something.. SimpleMQ::exchange('foo-exchange') ->setBody(['name' => 'First Foo']) ->setRoutingKey('foo.bar') ->handler('create-foo') ->publish(); return response()->json(['message' => 'OK']); } }

If you have multiply connection to RabbitMq, you can publish a message with connection method.

<?php namespace App\Https\Controllers; use Illuminate\Http\Request; use Usmonaliyev\SimpleRabbit\Facades\SimpleMQ; class FooController { public function createFoo(Request $request) { // Something.. SimpleMQ::connection('foo-connection') ->queue('foo-queue') ->setBody(['name' => 'First Foo']) ->handler('create-foo') ->publish(); return response()->json(['message' => 'OK']); } }

Consuming

Create app/AMQP/Handlers folder and create your handler classes.

For example:

<?php namespace App\AMQP\Handlers; use Usmonaliyev\SimpleRabbit\MQ\Message; class FooHandler { public function handle(Message $message) { // do something... $message->ack(); return ['ok' => true]; } }

Don't forget acknowledge message end of process, else consumer does not accept next message.

Then register your handler in routes/amqp-handlers.php file.

<?php use \App\AMQP\Handlers\FooHandler; use \Usmonaliyev\SimpleRabbit\Facades\ActionMQ; ActionMQ::register('create-foo', [FooHandler::class, 'handle']);

To consume messages use:

php artisan amqp:consume connection? queue?

The command requires two arguments which are connection and queue.
If you don't give them, command uses default connection and queue.

Contracts

We have a telegram group, you can join us.

Plans

  • Exchange configuration in config/simple-mq.php
  • Setup testing.

Testing

composer test

License

The MIT License.

统计信息

  • 总下载量: 6.67k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 76
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 76
  • Watchers: 2
  • Forks: 7
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-04

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固