2017 © Pedro Peláez
 

library laravel-amqp

AMQP wrapper for Laravel and Lumen to publish and consume messages

image

bschmitt/laravel-amqp

AMQP wrapper for Laravel and Lumen to publish and consume messages

  • Friday, July 13, 2018
  • by bschmitt
  • Repository
  • 7 Watchers
  • 55 Stars
  • 64,185 Installations
  • PHP
  • 2 Dependents
  • 0 Suggesters
  • 33 Forks
  • 13 Open issues
  • 12 Versions
  • 22 % Grown

The README.md

bschmitt/laravel-amqp

AMQP wrapper for Laravel and Lumen to publish and consume messages especially from RabbitMQ, (*1)

Build Status Latest Stable Version License, (*2)

Features

  • Advanced queue configuration
  • Add message to queues easily
  • Listen queues with useful options

Installation

Composer

Add the following to your require part within the composer.json:, (*3)

"bschmitt/laravel-amqp": "2.*" (Laravel >= 5.5)
"bschmitt/laravel-amqp": "1.*" (Laravel < 5.5)

```batch $ php composer update, (*4)


or

$ php composer require bschmitt/laravel-amqp, (*5)


## Integration ### Lumen Create a **config** folder in the root directory of your Lumen application and copy the content from **vendor/bschmitt/laravel-amqp/config/amqp.php** to **config/amqp.php**. Adjust the properties to your needs. ```php return [ 'use' => 'production', 'properties' => [ 'production' => [ 'host' => 'localhost', 'port' => 5672, 'username' => 'username', 'password' => 'password', 'vhost' => '/', 'exchange' => 'amq.topic', 'exchange_type' => 'topic', 'consumer_tag' => 'consumer', 'ssl_options' => [], // See https://secure.php.net/manual/en/context.ssl.php 'connect_options' => [], // See https://github.com/php-amqplib/php-amqplib/blob/master/PhpAmqpLib/Connection/AMQPSSLConnection.php 'queue_properties' => ['x-ha-policy' => ['S', 'all']], 'exchange_properties' => [], 'timeout' => 0 ], ], ];

Register the Lumen Service Provider in bootstrap/app.php:, (*6)

/*
|--------------------------------------------------------------------------
| Register Service Providers
|--------------------------------------------------------------------------
*/

//...

$app->configure('amqp');
$app->register(Bschmitt\Amqp\LumenServiceProvider::class);

//...

Add Facade Support for Lumen 5.2+, (*7)

//...
$app->withFacades(true, [
    'Bschmitt\Amqp\Facades\Amqp' => 'Amqp',
]);
//...

Laravel

Open config/app.php and add the service provider and alias:, (*8)

'Bschmitt\Amqp\AmqpServiceProvider',
'Amqp' => 'Bschmitt\Amqp\Facades\Amqp',

Publishing a message

Push message with routing key

    Amqp::publish('routing-key', 'message');

Push message with routing key and create queue

    Amqp::publish('routing-key', 'message' , ['queue' => 'queue-name']);

Push message with routing key and overwrite properties

    Amqp::publish('routing-key', 'message' , ['exchange' => 'amq.direct']);

Consuming messages

Consume messages, acknowledge and stop when no message is left

Amqp::consume('queue-name', function ($message, $resolver) {

   var_dump($message->body);

   $resolver->acknowledge($message);

   $resolver->stopWhenProcessed();

});

Consume messages forever

Amqp::consume('queue-name', function ($message, $resolver) {

   var_dump($message->body);

   $resolver->acknowledge($message);

});

Consume messages, with custom settings

Amqp::consume('queue-name', function ($message, $resolver) {

   var_dump($message->body);

   $resolver->acknowledge($message);

}, [
    'timeout' => 2,
    'vhost'   => 'vhost3'
]);

Fanout example

Publishing a message

\Amqp::publish('', 'message' , [
    'exchange_type' => 'fanout',
    'exchange' => 'amq.fanout',
]);

Consuming messages

\Amqp::consume('', function ($message, $resolver) {
    var_dump($message->body);
    $resolver->acknowledge($message);
}, [
    'routing' => '',
    'exchange' => 'amq.fanout',
    'exchange_type' => 'fanout',
    'queue_force_declare' => true,
    'queue_exclusive' => true,
    'persistent' => true // required if you want to listen forever
]);

Credits

  • Some concepts were used from https://github.com/mookofe/tail

License

This package is open-sourced software licensed under the MIT license, (*9)

The Versions

13/07 2018

dev-master

9999999-dev

AMQP wrapper for Laravel and Lumen to publish and consume messages

  Sources   Download

MIT

The Requires

 

The Development Requires

by Björn Schmitt

laravel lumen rabbitmq queue laravel5 package message queue amqp björn schmitt bschmitt

13/07 2018

2.0.3

2.0.3.0

AMQP wrapper for Laravel and Lumen to publish and consume messages

  Sources   Download

MIT

The Requires

 

The Development Requires

by Björn Schmitt

laravel lumen rabbitmq queue laravel5 package message queue amqp björn schmitt bschmitt

13/07 2018

2.0.2

2.0.2.0

AMQP wrapper for Laravel and Lumen to publish and consume messages

  Sources   Download

MIT

The Requires

 

The Development Requires

by Björn Schmitt

laravel lumen rabbitmq queue laravel5 package message queue amqp björn schmitt bschmitt

01/06 2018

2.0.1

2.0.1.0

AMQP wrapper for Laravel and Lumen to publish and consume messages

  Sources   Download

MIT

The Requires

 

The Development Requires

by Björn Schmitt

laravel lumen rabbitmq queue laravel5 package message queue amqp björn schmitt bschmitt

01/06 2018

2.0.0

2.0.0.0

AMQP wrapper for Laravel and Lumen to publish and consume messages

  Sources   Download

MIT

The Requires

 

The Development Requires

by Björn Schmitt

laravel lumen rabbitmq queue laravel5 package message queue amqp björn schmitt bschmitt

30/10 2017

1.2.6

1.2.6.0

AMQP wrapper for Laravel and Lumen to publish and consume messages

  Sources   Download

MIT

The Requires

 

The Development Requires

by Björn Schmitt

laravel lumen rabbitmq queue laravel5 package message queue amqp björn schmitt bschmitt

04/10 2017

1.2.5

1.2.5.0

AMQP wrapper for Laravel and Lumen to publish and consume messages

  Sources   Download

MIT

The Requires

 

The Development Requires

by Björn Schmitt

laravel lumen rabbitmq queue laravel5 package message queue amqp björn schmitt bschmitt

04/10 2017

1.2.4

1.2.4.0

AMQP wrapper for Laravel and Lumen to publish and consume messages

  Sources   Download

MIT

The Requires

 

The Development Requires

by Björn Schmitt

laravel lumen rabbitmq queue laravel5 package message queue amqp björn schmitt bschmitt

14/08 2017

dev-feature/26-write-integration-tests

dev-feature/26-write-integration-tests

AMQP wrapper for Laravel and Lumen to publish and consume messages

  Sources   Download

MIT

The Requires

 

The Development Requires

by Björn Schmitt

laravel lumen rabbitmq queue laravel5 package message queue amqp björn schmitt bschmitt

14/08 2017

1.2.3

1.2.3.0

AMQP wrapper for Laravel and Lumen to publish and consume messages

  Sources   Download

MIT

The Requires

 

The Development Requires

by Björn Schmitt

laravel lumen rabbitmq queue laravel5 package message queue amqp björn schmitt bschmitt

22/09 2016

1.2.2

1.2.2.0

AMQP wrapper for Laravel and Lumen to publish and consume messages

  Sources   Download

MIT

The Requires

 

The Development Requires

by Björn Schmitt

laravel lumen rabbitmq queue laravel5 package message queue amqp björn schmitt bschmitt

29/06 2016

1.2.1

1.2.1.0

AMQP wrapper for Laravel and Lumen to publish and consume messages

  Sources   Download

MIT

The Requires

 

The Development Requires

by Björn Schmitt

laravel lumen rabbitmq queue laravel5 package message queue amqp björn schmitt bschmitt