Skip to content

Commit e5dcdc5

Browse files
authored
Merge pull request #535 from php-enqueue/client-driver-typehints
[client] Add type hints to driver interface and its implementations.
2 parents 3d95cee + 5a6bac7 commit e5dcdc5

17 files changed

+143
-451
lines changed

Diff for: pkg/enqueue/Client/Driver/AmqpDriver.php

+9-34
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use Interop\Amqp\AmqpTopic;
1313
use Interop\Amqp\Impl\AmqpBind;
1414
use Interop\Queue\PsrMessage;
15+
use Interop\Queue\PsrQueue;
1516
use Psr\Log\LoggerInterface;
1617
use Psr\Log\NullLogger;
1718

@@ -32,22 +33,14 @@ class AmqpDriver implements DriverInterface
3233
*/
3334
private $queueMetaRegistry;
3435

35-
/**
36-
* @param AmqpContext $context
37-
* @param Config $config
38-
* @param QueueMetaRegistry $queueMetaRegistry
39-
*/
4036
public function __construct(AmqpContext $context, Config $config, QueueMetaRegistry $queueMetaRegistry)
4137
{
4238
$this->context = $context;
4339
$this->config = $config;
4440
$this->queueMetaRegistry = $queueMetaRegistry;
4541
}
4642

47-
/**
48-
* {@inheritdoc}
49-
*/
50-
public function sendToRouter(Message $message)
43+
public function sendToRouter(Message $message): void
5144
{
5245
if (false == $message->getProperty(Config::PARAMETER_TOPIC_NAME)) {
5346
throw new \LogicException('Topic name parameter is required but is not set');
@@ -59,10 +52,7 @@ public function sendToRouter(Message $message)
5952
$this->context->createProducer()->send($topic, $transportMessage);
6053
}
6154

62-
/**
63-
* {@inheritdoc}
64-
*/
65-
public function sendToProcessor(Message $message)
55+
public function sendToProcessor(Message $message): void
6656
{
6757
if (false == $message->getProperty(Config::PARAMETER_PROCESSOR_NAME)) {
6858
throw new \LogicException('Processor name parameter is required but is not set');
@@ -78,10 +68,7 @@ public function sendToProcessor(Message $message)
7868
$this->context->createProducer()->send($destination, $transportMessage);
7969
}
8070

81-
/**
82-
* {@inheritdoc}
83-
*/
84-
public function setupBroker(LoggerInterface $logger = null)
71+
public function setupBroker(LoggerInterface $logger = null): void
8572
{
8673
$logger = $logger ?: new NullLogger();
8774
$log = function ($text, ...$args) use ($logger) {
@@ -109,11 +96,9 @@ public function setupBroker(LoggerInterface $logger = null)
10996
}
11097

11198
/**
112-
* {@inheritdoc}
113-
*
11499
* @return AmqpQueue
115100
*/
116-
public function createQueue($queueName)
101+
public function createQueue(string $queueName): PsrQueue
117102
{
118103
$transportName = $this->queueMetaRegistry->getQueueMeta($queueName)->getTransportName();
119104

@@ -124,11 +109,9 @@ public function createQueue($queueName)
124109
}
125110

126111
/**
127-
* {@inheritdoc}
128-
*
129112
* @return AmqpMessage
130113
*/
131-
public function createTransportMessage(Message $message)
114+
public function createTransportMessage(Message $message): PsrMessage
132115
{
133116
$headers = $message->getHeaders();
134117
$properties = $message->getProperties();
@@ -153,10 +136,8 @@ public function createTransportMessage(Message $message)
153136

154137
/**
155138
* @param AmqpMessage $message
156-
*
157-
* {@inheritdoc}
158139
*/
159-
public function createClientMessage(PsrMessage $message)
140+
public function createClientMessage(PsrMessage $message): Message
160141
{
161142
$clientMessage = new Message();
162143

@@ -177,18 +158,12 @@ public function createClientMessage(PsrMessage $message)
177158
return $clientMessage;
178159
}
179160

180-
/**
181-
* @return Config
182-
*/
183-
public function getConfig()
161+
public function getConfig(): Config
184162
{
185163
return $this->config;
186164
}
187165

188-
/**
189-
* @return AmqpTopic
190-
*/
191-
private function createRouterTopic()
166+
private function createRouterTopic(): AmqpTopic
192167
{
193168
$topic = $this->context->createTopic(
194169
$this->config->createTransportRouterTopicName($this->config->getRouterTopicName())

Diff for: pkg/enqueue/Client/Driver/DbalDriver.php

+11-33
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@
88
use Enqueue\Client\MessagePriority;
99
use Enqueue\Client\Meta\QueueMetaRegistry;
1010
use Enqueue\Dbal\DbalContext;
11+
use Enqueue\Dbal\DbalDestination;
1112
use Enqueue\Dbal\DbalMessage;
1213
use Interop\Queue\PsrMessage;
14+
use Interop\Queue\PsrQueue;
1315
use Psr\Log\LoggerInterface;
1416
use Psr\Log\NullLogger;
1517

@@ -41,11 +43,6 @@ class DbalDriver implements DriverInterface
4143
MessagePriority::VERY_HIGH => 4,
4244
];
4345

44-
/**
45-
* @param DbalContext $context
46-
* @param Config $config
47-
* @param QueueMetaRegistry $queueMetaRegistry
48-
*/
4946
public function __construct(DbalContext $context, Config $config, QueueMetaRegistry $queueMetaRegistry)
5047
{
5148
$this->context = $context;
@@ -54,11 +51,9 @@ public function __construct(DbalContext $context, Config $config, QueueMetaRegis
5451
}
5552

5653
/**
57-
* {@inheritdoc}
58-
*
5954
* @return DbalMessage
6055
*/
61-
public function createTransportMessage(Message $message)
56+
public function createTransportMessage(Message $message): PsrMessage
6257
{
6358
$properties = $message->getProperties();
6459

@@ -88,10 +83,8 @@ public function createTransportMessage(Message $message)
8883

8984
/**
9085
* @param DbalMessage $message
91-
*
92-
* {@inheritdoc}
9386
*/
94-
public function createClientMessage(PsrMessage $message)
87+
public function createClientMessage(PsrMessage $message): Message
9588
{
9689
$clientMessage = new Message();
9790

@@ -120,10 +113,7 @@ public function createClientMessage(PsrMessage $message)
120113
return $clientMessage;
121114
}
122115

123-
/**
124-
* {@inheritdoc}
125-
*/
126-
public function sendToRouter(Message $message)
116+
public function sendToRouter(Message $message): void
127117
{
128118
if (false == $message->getProperty(Config::PARAMETER_TOPIC_NAME)) {
129119
throw new \LogicException('Topic name parameter is required but is not set');
@@ -135,10 +125,7 @@ public function sendToRouter(Message $message)
135125
$this->context->createProducer()->send($queue, $transportMessage);
136126
}
137127

138-
/**
139-
* {@inheritdoc}
140-
*/
141-
public function sendToProcessor(Message $message)
128+
public function sendToProcessor(Message $message): void
142129
{
143130
if (false == $message->getProperty(Config::PARAMETER_PROCESSOR_NAME)) {
144131
throw new \LogicException('Processor name parameter is required but is not set');
@@ -155,19 +142,16 @@ public function sendToProcessor(Message $message)
155142
}
156143

157144
/**
158-
* {@inheritdoc}
145+
* @return DbalDestination
159146
*/
160-
public function createQueue($queueName)
147+
public function createQueue(string $queueName): PsrQueue
161148
{
162149
$transportName = $this->queueMetaRegistry->getQueueMeta($queueName)->getTransportName();
163150

164151
return $this->context->createQueue($transportName);
165152
}
166153

167-
/**
168-
* {@inheritdoc}
169-
*/
170-
public function setupBroker(LoggerInterface $logger = null)
154+
public function setupBroker(LoggerInterface $logger = null): void
171155
{
172156
$logger = $logger ?: new NullLogger();
173157
$log = function ($text, ...$args) use ($logger) {
@@ -178,18 +162,12 @@ public function setupBroker(LoggerInterface $logger = null)
178162
$this->context->createDataBaseTable();
179163
}
180164

181-
/**
182-
* {@inheritdoc}
183-
*/
184-
public function getConfig()
165+
public function getConfig(): Config
185166
{
186167
return $this->config;
187168
}
188169

189-
/**
190-
* @return array
191-
*/
192-
public static function getPriorityMap()
170+
public static function getPriorityMap(): array
193171
{
194172
return self::$priorityMap;
195173
}

Diff for: pkg/enqueue/Client/Driver/FsDriver.php

+9-34
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use Enqueue\Fs\FsDestination;
1212
use Enqueue\Fs\FsMessage;
1313
use Interop\Queue\PsrMessage;
14+
use Interop\Queue\PsrQueue;
1415
use Psr\Log\LoggerInterface;
1516
use Psr\Log\NullLogger;
1617

@@ -31,22 +32,14 @@ class FsDriver implements DriverInterface
3132
*/
3233
private $queueMetaRegistry;
3334

34-
/**
35-
* @param FsContext $context
36-
* @param Config $config
37-
* @param QueueMetaRegistry $queueMetaRegistry
38-
*/
3935
public function __construct(FsContext $context, Config $config, QueueMetaRegistry $queueMetaRegistry)
4036
{
4137
$this->context = $context;
4238
$this->config = $config;
4339
$this->queueMetaRegistry = $queueMetaRegistry;
4440
}
4541

46-
/**
47-
* {@inheritdoc}
48-
*/
49-
public function sendToRouter(Message $message)
42+
public function sendToRouter(Message $message): void
5043
{
5144
if (false == $message->getProperty(Config::PARAMETER_TOPIC_NAME)) {
5245
throw new \LogicException('Topic name parameter is required but is not set');
@@ -58,10 +51,7 @@ public function sendToRouter(Message $message)
5851
$this->context->createProducer()->send($topic, $transportMessage);
5952
}
6053

61-
/**
62-
* {@inheritdoc}
63-
*/
64-
public function sendToProcessor(Message $message)
54+
public function sendToProcessor(Message $message): void
6555
{
6656
if (false == $message->getProperty(Config::PARAMETER_PROCESSOR_NAME)) {
6757
throw new \LogicException('Processor name parameter is required but is not set');
@@ -77,10 +67,7 @@ public function sendToProcessor(Message $message)
7767
$this->context->createProducer()->send($destination, $transportMessage);
7868
}
7969

80-
/**
81-
* {@inheritdoc}
82-
*/
83-
public function setupBroker(LoggerInterface $logger = null)
70+
public function setupBroker(LoggerInterface $logger = null): void
8471
{
8572
$logger = $logger ?: new NullLogger();
8673
$log = function ($text, ...$args) use ($logger) {
@@ -107,23 +94,19 @@ public function setupBroker(LoggerInterface $logger = null)
10794
}
10895

10996
/**
110-
* {@inheritdoc}
111-
*
11297
* @return FsDestination
11398
*/
114-
public function createQueue($queueName)
99+
public function createQueue(string $queueName): PsrQueue
115100
{
116101
$transportName = $this->queueMetaRegistry->getQueueMeta($queueName)->getTransportName();
117102

118103
return $this->context->createQueue($transportName);
119104
}
120105

121106
/**
122-
* {@inheritdoc}
123-
*
124107
* @return FsMessage
125108
*/
126-
public function createTransportMessage(Message $message)
109+
public function createTransportMessage(Message $message): PsrMessage
127110
{
128111
$properties = $message->getProperties();
129112

@@ -144,10 +127,8 @@ public function createTransportMessage(Message $message)
144127

145128
/**
146129
* @param FsMessage $message
147-
*
148-
* {@inheritdoc}
149130
*/
150-
public function createClientMessage(PsrMessage $message)
131+
public function createClientMessage(PsrMessage $message): Message
151132
{
152133
$clientMessage = new Message();
153134

@@ -165,18 +146,12 @@ public function createClientMessage(PsrMessage $message)
165146
return $clientMessage;
166147
}
167148

168-
/**
169-
* @return Config
170-
*/
171-
public function getConfig()
149+
public function getConfig(): Config
172150
{
173151
return $this->config;
174152
}
175153

176-
/**
177-
* @return FsDestination
178-
*/
179-
private function createRouterTopic()
154+
private function createRouterTopic(): FsDestination
180155
{
181156
return $this->context->createTopic(
182157
$this->config->createTransportQueueName($this->config->getRouterTopicName())

0 commit comments

Comments
 (0)