定制 vstaheev/yii2-amqp 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

vstaheev/yii2-amqp

Composer 安装命令:

composer require vstaheev/yii2-amqp

包简介

Yii 2 extension wrapper to communicate with RabbitMQ server via AMQP. Based on videlalvaro/php-amqplib.

README 文档

README

AMQP extension wrapper to communicate with RabbitMQ server. Based on videlalvaro/php-amqplib.

Installation

The preferred way to install this extension is through composer.

Either run

$ php composer.phar require webtoucher/yii2-amqp "*"

or add

"webtoucher/yii2-amqp": "*"

to the require section of your composer.json file.

Add the following in your console config:

return [
    ...
    'components' => [
        ...
        'amqp' => [
            'class' => 'webtoucher\amqp\components\Amqp',
            'host' => '127.0.0.1',
            'port' => 5672,
            'user' => 'your_login',
            'password' => 'your_password',
            'vhost' => '/',
        ],
        ...
    ],
    ...
    'controllerMap' => [
        ...
        'rabbit' => [
            'class' => 'webtoucher\amqp\controllers\AmqpListenerController',
            'interpreters' => [
                'my-exchange' => 'app\components\RabbitInterpreter', // interpreters for each exchange
            ],
            'exchange' => 'my-exchange', // default exchange
        ],
        ...
    ],
    ...
];

Add messages interpreter class @app/components/RabbitInterpreter with your handlers for different routing keys:

<?php

namespace app\components;

use webtoucher\amqp\components\AmqpInterpreter;


class RabbitInterpreter extends AmqpInterpreter
{
    /**
     * Interprets AMQP message with routing key 'hello_world'.
     *
     * @param array $message
     */
    public function readHelloWorld($message)
    {
        // todo: write message handler
        $this->log(print_r($message, true));
    }
}

Usage

Just run command

$ php yii rabbit

to listen topics with any routing keys on default exchange or

$ php yii rabbit my_routing_key

to listen topics with one routing key.

Run command

$ php yii rabbit my_routing_key direct --exchange=my_exchange

to listen direct messages on selected exchange.

Run command

$ php yii rabbit --exchange=my_exchange --queue=queue1

to listen messages on selected exchange binding queue1

Also you can create controllers for your needs. Just use for your web controllers class webtoucher\amqp\controllers\AmqpConsoleController instead of yii\web\Controller and for your console controllers class webtoucher\amqp\controllers\AmqpConsoleController instead of yii\console\Controller. AMQP connection will be available with property connection. AMQP channel will be available with property channel.

统计信息

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

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 40
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2015-09-04