wangchengtao / laravel-amqp
AMQP wrapper for Laravel to publish and consume messages
dev-master
2025-04-30 09:02 UTC
Requires
- php: ^7.3|^8.0
- illuminate/support: >=6.20.0
- php-amqplib/php-amqplib: ^3.0
Requires (Dev)
- illuminate/config: >=5.5
- mockery/mockery: ^1.2
- phpoption/phpoption: 1.7.x-dev
- phpunit/phpunit: >=6.0
- squizlabs/php_codesniffer: ^3.0@dev
- vlucas/phpdotenv: ^5.3
This package is auto-updated.
Last update: 2025-04-30 09:29:26 UTC
README
forked from bschmitt/laravel-amqp
Installation
$ php composer require wangchengtao/laravel-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 ]);