8000 Rename consumers to receivers and producers to senders. And a lot of … · symfony/symfony@ba18c84 · GitHub
[go: up one dir, main page]

Skip to content

Commit ba18c84

Browse files
committed
Rename consumers to receivers and producers to senders. And a lot of small comments on the PR.
1 parent 2b39e52 commit ba18c84
< 8000 button data-component="IconButton" type="button" data-testid="collapse-file-tree-button" aria-expanded="true" aria-controls="diff_file_tree" class="prc-Button-ButtonBase-c50BI d-none d-md-flex position-relative fgColor-muted prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="invisible" aria-describedby=":R72plab:-loading-announcement" aria-labelledby=":R12plab:">

26 files changed

+240
-231
lines changed

src/Symfony/Bundle/FrameworkBundle/Command/MessageConsumeCommand.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
use Symfony\Component\Console\Input\InputOption;
1818
use Symfony\Component\Console\Output\OutputInterface;
1919
use Symfony\Component\DependencyInjection\ContainerInterface;
20-
use Symfony\Component\Message\Asynchronous\ConsumedMessage;
20+
use Symfony\Component\Message\Asynchronous\Transport\ReceivedMessage;
2121
use Symfony\Component\Message\MessageBusInterface;
2222
use Symfony\Component\Message\MessageConsumerInterface;
2323

@@ -70,8 +70,8 @@ protected function execute(InputInterface $input, OutputInterface $output)
7070
}
7171

7272
foreach ($consumer->consume() as $message) {
73-
if (!$message instanceof ConsumedMessage) {
74-
$message = new ConsumedMessage($message);
73+
if (!$message instanceof ReceivedMessage) {
74+
$message = new ReceivedMessage($message);
7575
}
7676

7777
$messageBus->handle($message);

src/Symfony/Bundle/FrameworkBundle/Resources/config/message.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,18 @@
1919
</service>
2020

2121
<!-- Handlers -->
22-
<service id="message.handler_resolver" class="Symfony\Component\Message\MessageHandlerResolver">
22+
<service id="message.handler_resolver" class="Symfony\Component\Message\HandlerLocator">
2323
<argument type="collection" /> <!-- Message to handler mapping -->
2424
</service>
2525

26-
<service id="message.middleware.call_message_handler" class="Symfony\Component\Message\Middleware\CallMessageHandlerMiddleware">
26+
<service id="message.middleware.call_message_handler" class="Symfony\Component\Message\Middleware\HandleMessageMiddleware">
2727
<argument type="service" id="message.handler_resolver" />
2828

2929
<tag name="message_middleware" priority="-10" />
3030
</service>
3131

3232
<!-- Asynchronous -->
33-
<service id="message.asynchronous.routing.producer_for_message_resolver" class="Symfony\Component\Message\Asynchronous\Routing\ProducerForMessageResolver">
33+
<service id="message.asynchronous.routing.producer_for_message_resolver" class="Symfony\Component\Message\Asynchronous\Routing\SenderLocator">
3434
<argument type="collection" /> <!-- Message to producer mapping -->
3535
</service>
3636
<service id="message.asynchronous.middleware.send_message_to_producer" class="Symfony\Component\Message\Asynchronous\Middleware\SendMessageToProducersMiddleware">
@@ -40,7 +40,7 @@
4040
</service>
4141

4242
<!-- Message encoding/decoding -->
43-
<service id="message.transport.serialize_message_with_type_in_headers" class="Symfony\Component\Message\Transport\SerializeMessageWithTypeInHeaders">
43+
<service id="message.transport.serialize_message_with_type_in_headers" class="Symfony\Component\Message\Transport\SymfonySerialization">
4444
<argument type="service" id="serializer" />
4545
</service>
4646

src/Symfony/Component/Message/Asynchronous/Consumer/WrapIntoConsumedMessageConsumer.php

Lines changed: 0 additions & 38 deletions
This file was deleted.
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Symfony package.
5+
*
6+
* (c) Fabien Potencier <fabien@symfony.com>
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
namespace Symfony\Component\Message\Asynchronous\Middleware;
13+
14+
use Symfony\Component\Message\Asynchronous\Routing\SenderLocatorInterface;
15+
use Symfony\Component\Message\Asynchronous\Transport\ReceivedMessage;
16+
use Symfony\Component\Message\MiddlewareInterface;
17+
18+
/**
19+
* @author Samuel Roze <samuel.roze@gmail.com>
20+
*/
21+
class SendMessageMiddleware implements MiddlewareInterface
22+
{
23+
/**
24+
* @var SenderLocatorInterface
25+
*/
26+
private $senderLocator;
27+
28+
public function __construct(SenderLocatorInterface $senderLocator)
29+
{
30+
$this->senderLocator = $senderLocator;
31+
}
32+
33+
/**
34+
* {@inheritdoc}
35+
*/
36+
public function handle($message, callable $next)
37+
{
38+
if ($message instanceof ReceivedMessage) {
39+
$message = $message->getMessage();
40+
} elseif (!empty($senders = $this->senderLocator->getSendersForMessage($message))) {
41+
foreach ($senders as $sender) {
42+
$sender->send($message);
43+
}
44+
45+
if (!in_array(null, $senders)) {
46+
return;
47+
}
48+
}
49+
50+
return $next($message);
51+
}
52+
}

src/Symfony/Component/Message/Asynchronous/Middleware/SendMessageToProducersMiddleware.php

Lines changed: 0 additions & 52 deletions
This file was deleted.

src/Symfony/Component/Message/Asynchronous/Routing/ProducerForMessageResolver.php

Lines changed: 0 additions & 47 deletions
This file was deleted.
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Symfony package.
5+
*
6+
* (c) Fabien Potencier <fabien@symfony.com>
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
namespace Symfony\Component\Message\Asynchronous\Routing;
13+
14+
/**
15+
* @author Samuel Roze <samuel.roze@gmail.com>
16+
*/
17+
class SenderLocator implements SenderLocatorInterface
18+
{
19+
/**
20+
* Mapping describing which sender should be used for which message.
21+
*
22+
* @var array
23+
*/
24+
private $messageToSenderMapping;
25+
26+
public function __construct(array $messageToSenderMapping)
27+
{
28+
$this->messageToSenderMapping = $messageToSenderMapping;
29+
}
30+
31+
/**
32+
* {@inheritdoc}
33+
*/
34+
public function getSendersForMessage($message): array
35+
{
36+
return $this->messageToSenderMapping[get_class($message)] ?? $this->messageToSenderMapping['*'] ?? array();
37+
}
38+
}
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,19 @@
1111

1212
namespace Symfony\Component\Message\Asynchronous\Routing;
1313

14-
use Symfony\Component\Message\MessageProducerInterface;
14+
use Symfony\Component\Message\Transport\SenderInterface;
1515

1616
/**
1717
* @author Samuel Roze <samuel.roze@gmail.com>
1818
*/
19-
interface ProducerForMessageResolverInterface
19+
interface SenderLocatorInterface
2020
{
2121
/**
2222
* Get the producer (if applicable) for the given message object.
2323
*
2424
* @param object $message
2525
*
26-
* @return MessageProducerInterface[]
26+
* @return SenderInterface[]
2727
*/
28-
public function getProducersForMessage($message): array;
28+
public function getSendersForMessage($message): array;
2929
}

src/Symfony/Component/Message/Asynchronous/ConsumedMessage.php renamed to src/Symfony/Component/Message/Asynchronous/Transport/ReceivedMessage.php

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,17 @@
99
* file that was distributed with this source code.
1010
*/
1111

12-
namespace Symfony\Component\Message\Asynchronous;
12+
namespace Symfony\Component\Message\Asynchronous\Transport;
1313

1414
/**
15-
* Wraps a consumed message. This is mainly used by the `SendMessageToProducersMiddleware` middleware to identify
16-
* a message should not be re-produced if it was just consumed.
15+
* Wraps a received message. This is mainly used by the `SendMessageMiddleware` middleware to identify
16+
* a message should not be sent if it was just received.
17+
*
18+
* @see \Symfony\Component\Message\Asynchronous\Middleware\SendMessageMiddleware
1719
*
1820
* @author Samuel Roze <samuel.roze@gmail.com>
1921
*/
20-
final class ConsumedMessage
22+
final class ReceivedMessage
2123
{
2224
private $message;
2325

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Symfony package.
5+
*
6+
* (c) Fabien Potencier <fabien@symfony.com>
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
namespace Symfony\Component\Message\Asynchronous\Transport;
13+
14+
use Symfony\Component\Message\Transport\ReceiverInterface;
15+
16+
/**
17+
* @author Samuel Roze <samuel.roze@gmail.com>
18+
*/
19+
class WrapIntoReceivedMessage implements ReceiverInterface
20+
{
21+
/**
22+
* @var ReceiverInterface
23+
*/
24+
private $decoratedReceiver;
25+
26+
public function __construct(ReceiverInterface $decoratedConsumer)
27+
{
28+
$this->decoratedReceiver = $decoratedConsumer;
29+
}
30+
31+
public function receive(): \Generator
32+
{
33+
foreach ($this->decoratedReceiver->receive() as $message) {
34+
yield new ReceivedMessage($message);
35+
}
36+
}
37+
}

src/Symfony/Component/Message/Debug/LoggingMiddleware.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@
1111

1212
namespace Symfony\Component\Message\Debug;
1313

14-
use Symfony\Component\Message\MessageBusMiddlewareInterface;
14+
use Symfony\Component\Message\MiddlewareInterface;
1515
use Psr\Log\LoggerInterface;
1616

1717
/**
1818
* @author Samuel Roze <samuel.roze@gmail.com>
1919
*/
20-
class LoggingMiddleware implements MessageBusMiddlewareInterface
20+
class LoggingMiddleware implements MiddlewareInterface
2121
{
2222
/**
2323
* @var LoggerInterface

0 commit comments

Comments
 (0)
0