dev-master
9999999-devAMQP wrapper for Lumen to publish and consume messages
MIT
The Requires
- php >=5.5.9
- php-amqplib/php-amqplib 2.*
- illuminate/support >=5.1
The Development Requires
by XiaoGai
lumen rabbitmq queue package message queue amqp
Wallogit.com
2017 © Pedro Peláez
AMQP wrapper for Lumen to publish and consume messages
AMQP wrapper for Lumen to publish and consume messages especially from RabbitMQ, (*1)
Add the following to your require part within the composer.json:, (*2)
"kamiorz/lumen-amqp": "1.*"
```batch $ php composer update, (*3)
or
$ php composer require kamiorz/lumen-amqp, (*4)
## Integration ### Lumen Create a **config** folder in the root directory of your Lumen application and copy the content from **vendor/kami/lumen-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:, (*5)
/*
|--------------------------------------------------------------------------
| Register Service Providers
|--------------------------------------------------------------------------
*/
//...
$app->configure('amqp');
$app->register(KamiOrz\Amqp\LumenServiceProvider::class);
//...
Add Facade Support for Lumen 5.2+, (*6)
//... $app->withFacades(); class_alias(\Illuminate\Support\Facades\App::class, 'App'); //...
Amqp::publish('routing-key', 'message');
Amqp::publish('routing-key', 'message' , ['queue' => 'queue-name']);
Amqp::publish('routing-key', 'message' , ['exchange' => 'amq.direct']);
Amqp::consume('queue-name', function ($message, $resolver) {
var_dump($message->body);
$resolver->acknowledge($message);
$resolver->stopWhenProcessed();
});
Amqp::consume('queue-name', function ($message, $resolver) {
var_dump($message->body);
$resolver->acknowledge($message);
});
Amqp::consume('queue-name', function ($message, $resolver) {
var_dump($message->body);
$resolver->acknowledge($message);
}, [
'timeout' => 2,
'vhost' => 'vhost3'
]);
\Amqp::publish('', 'message' , [
'exchange_type' => 'fanout',
'exchange' => 'amq.fanout',
]);
\Amqp::consume('', function ($message, $resolver) {
var_dump($message->body);
$resolver->acknowledge($message);
}, [
'exchange' => 'amq.fanout',
'exchange_type' => 'fanout',
'queue_force_declare' => true,
'queue_exclusive' => true,
'persistent' => true// required if you want to listen forever
]);
This package is open-sourced software licensed under the MIT license, (*7)
AMQP wrapper for Lumen to publish and consume messages
MIT
lumen rabbitmq queue package message queue amqp