GithubHelp home page GithubHelp logo

vuxlee584 / yii2-amqp Goto Github PK

View Code? Open in Web Editor NEW

This project forked from webtoucher/yii2-amqp

0.0 1.0 0.0 24 KB

Yii 2 extension wrapper to communicate with RabbitMQ server via AMQP.

Home Page: https://packagist.org/packages/webtoucher/yii2-amqp

License: BSD 3-Clause "New" or "Revised" License

PHP 100.00%

yii2-amqp's Introduction

yii2-amqp

AMQP extension wrapper to communicate with RabbitMQ server. Based on php-amqplib/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.

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.

yii2-amqp's People

Contributors

webtoucher avatar khristenkoyura avatar

Watchers

Vu Le avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.