psyllium / amqp
Symfony psyllium adapter for amqp
Requires
- php: ^8.0
- ext-sockets: *
- php-amqplib/php-amqplib: ^3.6.1
- symfony/dependency-injection: ^6.4
This package is not auto-updated.
Last update: 2024-10-29 20:51:59 UTC
README
Getting Started
This package is a part of Psyllium library. It provides a simple way to use RabbitMQ in your application. Allows you to define listeners and message producers in the queue system.
Install
To install the package you will need to be using Composer in your project. To install it please see the docs.
composer require psyllium/amqp
Enable the Bundle
Enable it by adding it to the list of registered bundles in the Kernel.php file of your project:
config/bundles.php
return [
Psyllium\Amqp\PsylliumAmqp::class => ['all' => true]
];
config/packages/psyllium_amqp.yaml
psyllium:
rabbitmq:
hostname: '%hostname%'
port: '%port%'
user: '%user%'
pass: '%password%'
Configure
In this way, you can create producers and listeners who will use the connection to the queuing system generated by the bundle.
config/services.yaml
psyllium.rabbitmq.listener:
class: 'Psyllium\Amqp\Infrastructure\RabbitMQ\Listener'
factory: ['@Psyllium\Amqp\Infrastructure\RabbitMQ\ListenerFactory', 'create']
arguments:
- '%queue_name%'
config/services.yaml
psyllium.rabbitmq.producer:
class: 'Psyllium\Amqp\Infrastructure\RabbitMQ\Producer'
factory: [ '@Psyllium\Amqp\Infrastructure\RabbitMQ\ProducerFactory', 'create' ]
arguments:
- '%exchange_name%'
How to use in code?
Listener:
$this->listener->listen(
function (AMQPMessage $message): void {
$message->getBody()
// do something with message
$message->ack();
}
);
Producer:
Definde class that implements EventInterface
use Psyllium\Amqp\Domain\EventModel\EventInterface;
class Example implements EventInterface
Send message to queue
$this->producer->produce(
new Example()
);