Skip to content

Commit 0f5a852

Browse files
authored
Merge pull request #29 from php-enqueue/fix-simple-client
Fix Simple Client
2 parents e4dfc81 + 9cfb226 commit 0f5a852

File tree

3 files changed

+44
-12
lines changed

3 files changed

+44
-12
lines changed

Diff for: docs/quick_tour.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ use Enqueue\Psr\Processor;
173173
/** @var \Enqueue\Psr\Context $psrContext */
174174

175175
$client = new SimpleClient($psrContext);
176-
$client->bind('foo_topic', function (Message $message) {
176+
$client->bind('foo_topic', 'processor_name', function (Message $message) {
177177
// process message
178178

179179
return Processor::ACK;

Diff for: pkg/enqueue/Client/SimpleClient.php

+40-8
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,11 @@ public function __construct(AmqpContext $context, Config $config = null)
7272

7373
/**
7474
* @param string $topic
75-
* @param callback
75+
* @param string $processorName
76+
* @param callback $processor
7677
*/
77-
public function bind($topic, callable $processor)
78+
public function bind($topic, $processorName, callable $processor)
7879
{
79-
$processorName = uniqid('', true);
8080
$queueName = $this->config->getDefaultProcessorQueueName();
8181

8282
$this->topicsMetaRegistry->addProcessor($topic, $processorName);
@@ -97,9 +97,7 @@ public function consume(ExtensionInterface $runtimeExtension = null)
9797

9898
$processor = $this->getProcessor();
9999

100-
$queueConsumer = new QueueConsumer($this->context, new ChainExtension([
101-
new SetRouterPropertiesExtension($this->driver),
102-
]));
100+
$queueConsumer = $this->getQueueConsumer();
103101

104102
$defaultQueueName = $this->config->getDefaultProcessorQueueName();
105103
$defaultTransportQueueName = $this->config->createTransportQueueName($defaultQueueName);
@@ -114,10 +112,44 @@ public function consume(ExtensionInterface $runtimeExtension = null)
114112
$queueConsumer->consume($runtimeExtension);
115113
}
116114

115+
/**
116+
* @return QueueConsumer
117+
*/
118+
public function getQueueConsumer()
119+
{
120+
return new QueueConsumer($this->context, new ChainExtension([
121+
new SetRouterPropertiesExtension($this->driver),
122+
]));
123+
}
124+
125+
/**
126+
* @return DriverInterface
127+
*/
128+
public function getDriver()
129+
{
130+
return $this->driver;
131+
}
132+
133+
/**
134+
* @return TopicMetaRegistry
135+
*/
136+
public function getTopicMetaRegistry()
137+
{
138+
return $this->topicsMetaRegistry;
139+
}
140+
141+
/**
142+
* @return QueueMetaRegistry
143+
*/
144+
public function getQueueMetaRegistry()
145+
{
146+
return $this->queueMetaRegistry;
147+
}
148+
117149
/**
118150
* @return MessageProducerInterface
119151
*/
120-
private function getProducer()
152+
public function getProducer()
121153
{
122154
$this->driver->setupBroker();
123155

@@ -127,7 +159,7 @@ private function getProducer()
127159
/**
128160
* @return DelegateProcessor
129161
*/
130-
private function getProcessor()
162+
public function getProcessor()
131163
{
132164
return new DelegateProcessor($this->processorsRegistry);
133165
}

Diff for: pkg/enqueue/Tests/Functional/Client/SimpleClientTest.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public function testProduceAndConsumeOneMessage()
3434
$actualMessage = null;
3535

3636
$client = new SimpleClient($this->context);
37-
$client->bind('foo_topic', function (Message $message) use (&$actualMessage) {
37+
$client->bind('foo_topic', 'foo_processor', function (Message $message) use (&$actualMessage) {
3838
$actualMessage = $message;
3939

4040
return Result::ACK;
@@ -56,12 +56,12 @@ public function testProduceAndRouteToTwoConsumes()
5656
$received = 0;
5757

5858
$client = new SimpleClient($this->context);
59-
$client->bind('foo_topic', function () use (&$received) {
59+
$client->bind('foo_topic', 'foo_processor1', function () use (&$received) {
6060
++$received;
6161

6262
return Result::ACK;
6363
});
64-
$client->bind('foo_topic', function () use (&$received) {
64+
$client->bind('foo_topic', 'foo_processor2', function () use (&$received) {
6565
++$received;
6666

6767
return Result::ACK;

0 commit comments

Comments
 (0)