Skip to content

webtoucher/yii2-amqp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yii2-amqp

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' => '/',
        ],
        ...
    ],
    ...
];

Usage

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.

Example:

<?php

namespace app\commands;

use PhpAmqpLib\Message\AMQPMessage;
use webtoucher\amqp\controllers\AmqpConsoleController;


class RabbitController extends AmqpConsoleController
{
    public function actionRun() {
        $this->getAmqp()->listen('my_exchange', '#', function (AMQPMessage $msg) {
            $this->process($msg);
        });
    }

    protected function process(AMQPMessage $msg) {
        $message = json_decode($msg->body, true);
        // todo: write message handler
        print_r($message);
    }
}

You can start listening by follow command:

$ php yii rabbit

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages