znk3r / mqlib
基于php-amqplib的PHP AMQP抽象库(5.3+)
dev-master
2015-09-06 20:58 UTC
Requires
- videlalvaro/php-amqplib: 2.5.*
Requires (Dev)
- phpunit/phpunit: 4.*
This package is not auto-updated.
Last update: 2024-09-28 18:10:58 UTC
README
MQlib是PHP(5.3+)上基于php-amqplib的AMQP抽象库。
php-amqplib是一个非常好的库,但由于其糟糕的接口而难以使用。每次我都需要记住exchange_declare()或queue_declare()中每个参数的含义。这个库试图解决这个问题,提供了一个更简单的接口,以快速开发生产者和消费者。
安装
"require": {
"znk3r/mqlib": "dev-master"
}
基本用法
生产者
基本生产者
<?php
use znk3r\MQlib\Producer;
use znk3r\MQlib\Exchange\Fanout;
use znk3r\MQlib\Message\Json as JsonMessage;
$producer = new Producer;
$producer->getBroker()->setTimeout(2); // seconds
$exchange = new Fanout('my_exchange');
$message = new JsonMessage($data);
$producer->publish($message, $exchange);
多消息
<?php
use znk3r\MQlib\Producer;
use znk3r\MQlib\Exchange\Fanout;
use znk3r\MQlib\Message\Text as TextMessage;
$producer = new Producer;
$producer->connect();
$producer->openChannel();
$producer->sendTo(new Fanout('my_exchange'));
foreach ($i = 0; $i < 100; $i++) {
$producer->publish(new TextMessage($i));
}
$producer->closeChannel();
$producer->disconnect();
消费者
Fanout消费者
<?php
use znk3r\MQlib\Consumer;
use znk3r\MQlib\Queue\Queue;
use znk3r\MQlib\Exchange\Fanout;
$exchange = new Fanout('my_exchange');
$queue = new Queue('my_queue);
$queue->bindTo($exchange);
$consumer = new Consumer('consumer_name');
$consumer->listen($queue, function($msg) {
echo $msg->getBody().PHP_EOL;
$msg->acknowledged();
});