Pull to refresh

Новые идеи по АПИ RabbitMQ AMQP для PHP

Lumber room
Недавно опубликовал разработанное ранее PHP API для RabbitMQ «AMQP теперь и для РНР»

При обсуждении было предложено сделать PHP API более объектной моделью,
более близкой к модели, предложенной в Протоколе AMQP.

Код немного усложнится, но объектная модель будет более красивой,

Прежде чем перейти к кодированию, представляю на обсуждение новое API

Класс AMQPConnection

открытие логического соединения, включая канальное соединение.
$cnn = new APMQConection( [host=localhost],[port=5672],[login=guest],[psw=guest],[vhost=/] );
$cnn->getResult(); — true/false результат выполнения соединения

Класс Обмена AMQPExchange

$exchange = new AMQPExchange($cnn, [name],[parms]) — создание обмена, если задано имя иначе инициализация класса
$res = $exchange->declare([name]) — объявить обмен
$res = $exchange->delete([name]) — удалить обмен, если имя не задано — удаляется с текущим именем
$res = $exchange->publish( msg, routing_key, [parms])
$res = $exchange->getResult(); — true/false результат выполнения последней операции

$exchange = new AMQPExchange($cnn, name,[parms]) эквивалентно
$exchange = new AMQPExchange($cnn);
$res = $exchange->declare();

Класс Очереди AMQPQueue

$queue = new AMQPQueue(cnn, [name],[params]); — создание очереди, если задано имя иначе инициализация класса
$res = $queue->delete([name]) — удаление очереди, возвращает результат выполнения операции
$res = $queue->declaere([name],[params]) — объявление очереди, возвращает результат выполнения операции.
$res = $queue->purge([name]) — удаление всех элементов очереди, возвращает результат выполнения операции
$res =$queue->bind(exchange,routing_key, [parms]); -связь очереди и обмена
$queueItem = $queue->getItem(); — получить один элемент из очереди
$arrayOfQueueItems= $queue->consume([n]) — получить массив n-сообщений из очереди (все прочие сбрасываются ) если n не задано — выбираются все сообщения
$queue->getResult(); — true/false результат выполнения последней операции, в основном предназначено для использования проверки операций в конструкторе

$queue = new AMQPQueue(cnn, name,[params]); эквивалентно:
$queue = new AMQPQueue(cnn)
$queue->declaere(name,[params])

Хоть объектная модель не совсем соответствует стандарту AMQP, но вместо одного монолитного класса стало уже четыре. Практически же функциональность не изменилась, добавлены только методы удаления очереди и обмена.
Tags:
Hubs:
Total votes 8: ↑5 and ↓3 +2
Views 1.2K
Comments Comments 3