Download the PHP package pccomponentes/amqp without Composer
On this page you can find all versions of the php package pccomponentes/amqp. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package amqp
Utilidades para mensajería AMQP
Esta biblioteca proporciona una serie de utilidades para lidiar con sistemas de mensajería basados en el protocolo AMQP 0.9.1, y en especial con Rabbit MQ. Entre las utilidades también se incluyen adaptadores a middlewares del bus de symfony para publicar, y un comando de consola para consumir.
Las herramientas disponibles en este repositorio son en su mayoría clases de alto nivel que usan intensivamente clases de bajo nivel que trae la implementación en PHP del cliente Rabbit, que puedes encontrar en [https://github.com/php-amqplib/php-amqplib]().
Creación de exchanges, colas y binds.
Para la declaración de exchanges, colas y binds, disponemos de tres builders, que son "atajos" para las funciones de la librería ampqlib original, a excepción de , que usa .
Todos ellos disponen de métodos para ir seteando sus distintas opciones.
Para conocer qué opciones acepta cada builder, consulte:
Ejemplo de uso
Publicar mensajes en una cola
Para publicar un mensaje en una cola, se proporcionan las siguientes clases:
La clase principal requiere de una instancia de , de , y de , y proporciona un método que enviará el mensaje con el topic indicados al exchange correspondiente.
La elección de a qué exchange enviar el mensaje, y la configuración del envío, se declara con la clase , que es un atajo a de la librería original.
Por último, para facilitar la creación del mensaje , se proporciona su correspondiente , donde podrá configurar el , el , y otra multitud de parámetros, a todos los mensajes que construya y envíe la clase .
Mas información:
Ejemplo de uso:
Consumir una cola
Para consumir un mensaje en una cola, se proporcionan las siguientes clases:
La clase principal requiere de una instancia de , de y de , al que le enviará un mensaje de tipo .
La configuración de cómo consumir una cola, se delegará a , que son atajos a los métodos de la librería original y .
La interfaz será la que tu proyecto tenga que implementar, y programar allí las tareas que quieras ejecutar cuando recuperes un mensaje. Este mensaje será de tipo , que simplemente es un wrapper de que viene con métodos para hacer un ACK, NACK y REJECT sobre el mensaje de manera simple. Además proporciona un método para acceder a la clase original.
Mas información:
Ejemplo de uso
En el siguiente ejemplo, declararemos un que hará un simple de cada mensaje que consuma.
Subscriber + Message Bus
Si se requiere enviar los mensajes consumidos de una cola de rabbit, a un bus, se proporciona la clase , que es una implmenetación concreta del callback de para este fin. Mas información:
- Symfony Messenger
Ejemplo de uso
Message Bus + Publisher
Para meter un middleware que publique mensajes en una cola, tenemos dos clases auxiliares: , que es el middleware del bus de symfony, y , que es una interfaz que implementará nuestro proyecto para indicar el cómo serializar los mensajes antes de enviarlos al sistema de mensajería, y a qué topic o routing key hacerlo.
Mas información:
- Symfony Messenger
Ejemplo de uso
Comandos de consola
A continuación, se detallarán los comandos de consola que proporciona esta librería. Todos ellos dependen del componente console de Symfony. Mas información:
- Componente console
Consumir mensajes
Con el framework symfony
Si nuestro proyecto cuenta con el framework de symfony, podemos meter el comando directamente en el contenedor de dependencias, marcándolo con el tag correspondiente.
Por ejemplo:
Creando nuestra propia aplicación de consola
Para poder ejecutar el comando, previamente tenemos que generar una aplicación. Para ello, deberíamos crear un fichero PHP con el siguiente contenido, modificado lo necesario para adaptarlo a tu nuestro proyecto. Como será un ejecutable de consola, lo llamaremos console sin extensión, y lo pondremos en un directorio bin en la raíz de tu proyecto.
Ejecutar el comando
Para ejecutar el comando, basta con escribir en la terminal:
En él le estamos indicando al sistema que consuma 20 mensajes, y cuando no haya mensajes en la cola, quedará esperando 10 segundos como máximo, o terminarña de ejecutar.
All versions of amqp with dependencies
php-amqplib/php-amqplib Version ^2.7
symfony/console Version ^4.1
symfony/messenger Version ^4.1
psr/log Version ^1.0