8000 [Messenger] Revert "Support configuring messages when dispatching" by sroze · Pull Request #27179 · symfony/symfony · GitHub
[go: up one dir, main page]

Skip to content

[Messenger] Revert "Support configuring messages when dispatching" #27179

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,12 @@

use Symfony\Component\Messenger\Asynchronous\Routing\SenderLocatorInterface;
use Symfony\Component\Messenger\Asynchronous\Transport\ReceivedMessage;
use Symfony\Component\Messenger\Envelope;
use Symfony\Component\Messenger\EnvelopeAwareInterface;
use Symfony\Component\Messenger\Middleware\MiddlewareInterface;

/**
* @author Samuel Roze <samuel.roze@gmail.com>
*/
class SendMessageMiddleware implements MiddlewareInterface, EnvelopeAwareInterface
class SendMessageMiddleware implements MiddlewareInterface
{
private $senderLocator;

Expand All @@ -34,19 +32,17 @@ public function __construct(SenderLocatorInterface $senderLocator)
*/
public function handle($message, callable $next)
{
$envelope = Envelope::wrap($message);
if ($envelope->get(ReceivedMessage::class)) {
// It's a received message. Do not send it back:
return $next($message);
if ($message instanceof ReceivedMessage) {
return $next($message->getMessage());
}

if (!empty($senders = $this->senderLocator->getSendersForMessage($envelope->getMessage()))) {
if (!empty($senders = $this->senderLocator->getSendersForMessage($message))) {
foreach ($senders as $sender) {
if (null === $sender) {
continue;
}

$sender->send($envelope);
$sender->send($message);
}

if (!\in_array(null, $senders, true)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,26 +12,26 @@
namespace Symfony\Component\Messenger\Asynchronous\Transport;

use Symfony\Component\Messenger\Asynchronous\Middleware\SendMessageMiddleware;
use Symfony\Component\Messenger\EnvelopeItemInterface;

/**
* Marker config for a received message.
* This is mainly used by the `SendMessageMiddleware` middleware to identify
* Wraps a received message. This is mainly used by the `SendMessageMiddleware` middleware to identify
* a message should not be sent if it was just received.
*
* @see SendMessageMiddleware
*
* @author Samuel Roze <samuel.roze@gmail.com>
*/
final class ReceivedMessage implements EnvelopeItemInterface
final class ReceivedMessage
{
public function serialize()
private $message;

public function __construct($message)
{
return '';
$this->message = $message;
}

public function unserialize($serialized)
public function getMessage()
{
// noop
return $this->message;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@

namespace Symfony\Component\Messenger\Asynchronous\Transport;

use Symfony\Component\Messenger\Envelope;
use Symfony\Component\Messenger\Transport\ReceiverInterface;

/**
Expand All @@ -28,12 +27,12 @@ public function __construct(ReceiverInterface $decoratedConsumer)

public function receive(callable $handler): void
{
$this->decoratedReceiver->receive(function (?Envelope $envelope) use ($handler) {
if (null !== $envelope) {
$envelope = $envelope->with(new ReceivedMessage());
$this->decoratedReceiver->receive(function ($message) use ($handler) {
if (null !== $message) {
$message = new ReceivedMessage($message);
}

$handler($envelope);
$handler($message);
});
}

Expand Down
80 changes: 0 additions & 80 deletions src/Symfony/Component/Messenger/Envelope.php

This file was deleted.

23 changes: 0 additions & 23 deletions src/Symfony/Component/Messenger/EnvelopeAwareInterface.php

This file was deleted.

24 changes: 0 additions & 24 deletions src/Symfony/Component/Messenger/EnvelopeItemInterface.php

This file was deleted.

6 changes: 0 additions & 6 deletions src/Symfony/Component/Messenger/MessageBus.php
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,6 @@ private function callableForNextMiddleware(int $index): callable
$middleware = $this->indexedMiddlewareHandlers[$index];

return function ($message) use ($middleware, $index) {
$message = Envelope::wrap($message);
if (!$middleware instanceof EnvelopeAwareInterface) {
// Do not provide the envelope if the middleware cannot read it:
$message = $message->getMessage();
}

return $middleware->handle($message, $this->callableForNextMiddleware($index + 1));
};
}
Expand Down
2 changes: 1 addition & 1 deletion src/Symfony/Component/Messenger/MessageBusInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ interface MessageBusInterface
*
* The bus can return a value coming from handlers, but is not required to do so.
*
* @param object|Envelope $message The message or the message pre-wrapped in an envelope
* @param object $message
*
* @return mixed
*/
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

namespace Symfony\Component\Messenger\Middleware;

use Symfony\Component\Messenger\Asynchronous\Transport\ReceivedMessage;
use Psr\Log\LoggerInterface;

/**
Expand Down Expand Up @@ -50,6 +51,10 @@ public function handle($message, callable $next)

private function createContext($message): array
{
if ($message instanceof ReceivedMessage) {
$message = $message->getMessage();
}

return array(
'message' => $message,
'class' => \get_class($message),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,13 @@

namespace Symfony\Component\Messenger\Middleware;

use Symfony\Component\Messenger\Envelope;
use Symfony\Component\Messenger\EnvelopeAwareInterface;
use Symfony\Component\Messenger\Exception\ValidationFailedException;
use Symfony\Component\Messenger\Middleware\Configuration\ValidationConfiguration;
use Symfony\Component\Validator\Validator\ValidatorInterface;

/**
* @author Tobias Nyholm <tobias.nyholm@gmail.com>
*/
class ValidationMiddleware implements MiddlewareInterface, EnvelopeAwareInterface
class ValidationMiddleware implements MiddlewareInterface
{
private $validator;

Expand All @@ -31,17 +28,9 @@ public function __construct(ValidatorInterface $validator)

public function handle($message, callable $next)
{
$envelope = Envelope::wrap($message);
$subject = $envelope->getMessage();
$groups = null;
/** @var ValidationConfiguration|null $validationConfig */
if ($validationConfig = $envelope->get(ValidationConfiguration::class)) {
$groups = $validationConfig->getGroups();
}

$violations = $this->validator->validate($subject, null, $groups);
$violations = $this->validator->validate($message);
if (\count($violations)) {
throw new ValidationFailedException($subject, $violations);
throw new ValidationFailedException($message, $violations);
}

return $next($message);
Expand Down
Loading
0