Как стать автором
Поиск
Написать публикацию
Обновить

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

Время на прочтение2 мин
Количество просмотров2.9K
Недавно опубликовал разработанное ранее 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, но вместо одного монолитного класса стало уже четыре. Практически же функциональность не изменилась, добавлены только методы удаления очереди и обмена.
Теги:
Хабы:
Всего голосов 8: ↑5 и ↓3+2
Комментарии3

Публикации

Ближайшие события