Skip to content

Commit e1eb717

Browse files
committed
[Mailer] Fix BC breaking event name change
1 parent 00401ec commit e1eb717

File tree

7 files changed

+29
-59
lines changed

7 files changed

+29
-59
lines changed

src/Symfony/Component/Mailer/Event/MessageEvent.php

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
namespace Symfony\Component\Mailer\Event;
1313

1414
use Symfony\Component\Mailer\Envelope;
15+
use Symfony\Component\Messenger\Stamp\StampInterface;
1516
use Symfony\Component\Mime\RawMessage;
1617
use Symfony\Contracts\EventDispatcher\Event;
1718

@@ -20,13 +21,16 @@
2021
*
2122
* @author Fabien Potencier <fabien@symfony.com>
2223
*/
23-
class MessageEvent extends Event
24+
final class MessageEvent extends Event
2425
{
2526
private RawMessage $message;
2627
private Envelope $envelope;
2728
private string $transport;
2829
private bool $queued;
2930

31+
/** @var StampInterface[] */
32+
private array $stamps = [];
33+
3034
public function __construct(RawMessage $message, Envelope $envelope, string $transport, bool $queued = false)
3135
{
3236
$this->message = $message;
@@ -64,4 +68,17 @@ public function isQueued(): bool
6468
{
6569
return $this->queued;
6670
}
71+
72+
public function addStamp(StampInterface $stamp): void
73+
{
74+
$this->stamps[] = $stamp;
75+
}
76+
77+
/**
78+
* @return StampInterface[]
79+
*/
80+
public function getStamps(): array
81+
{
82+
return $this->stamps;
83+
}
6784
}

src/Symfony/Component/Mailer/Event/QueuingMessageEvent.php

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

src/Symfony/Component/Mailer/EventListener/MessageLoggerListener.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
1515
use Symfony\Component\Mailer\Event\MessageEvent;
1616
use Symfony\Component\Mailer\Event\MessageEvents;
17-
use Symfony\Component\Mailer\Event\QueuingMessageEvent;
1817
use Symfony\Contracts\Service\ResetInterface;
1918

2019
/**
@@ -50,7 +49,7 @@ public static function getSubscribedEvents(): array
5049
{
5150
return [
5251
MessageEvent::class => ['onMessage', -255],
53-
QueuingMessageEvent::class => ['onMessage', -255],
52+
MessageEvent::class => ['onMessage', -255],
5453
];
5554
}
5655
}

src/Symfony/Component/Mailer/EventListener/MessengerTransportListener.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
namespace Symfony\Component\Mailer\EventListener;
1313

1414
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
15-
use Symfony\Component\Mailer\Event\QueuingMessageEvent;
15+
use Symfony\Component\Mailer\Event\MessageEvent;
1616
use Symfony\Component\Messenger\Stamp\TransportNamesStamp;
1717
use Symfony\Component\Mime\Message;
1818

@@ -23,7 +23,7 @@
2323
*/
2424
final class MessengerTransportListener implements EventSubscriberInterface
2525
{
26-
public function onMessage(QueuingMessageEvent $event): void
26+
public function onMessage(MessageEvent $event): void
2727
{
2828
$message = $event->getMessage();
2929
if (!$message instanceof Message || !$message->getHeaders()->has('X-Bus-Transport')) {
@@ -39,7 +39,7 @@ public function onMessage(QueuingMessageEvent $event): void
3939
public static function getSubscribedEvents(): array
4040
{
4141
return [
42-
QueuingMessageEvent::class => 'onMessage',
42+
MessageEvent::class => 'onMessage',
4343
];
4444
}
4545
}

src/Symfony/Component/Mailer/Mailer.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313

1414
use Psr\EventDispatcher\EventDispatcherInterface;
1515
use Symfony\Component\Mailer\Event\MessageEvent;
16-
use Symfony\Component\Mailer\Event\QueuingMessageEvent;
1716
use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
1817
use Symfony\Component\Mailer\Messenger\SendEmailMessage;
1918
use Symfony\Component\Mailer\Transport\TransportInterface;
@@ -54,7 +53,7 @@ public function send(RawMessage $message, Envelope $envelope = null): void
5453
// Listeners should act depending on the `$queued` argument of the `MessageEvent` instance.
5554
$clonedMessage = clone $message;
5655
$clonedEnvelope = null !== $envelope ? clone $envelope : Envelope::create($clonedMessage);
57-
$event = new QueuingMessageEvent($clonedMessage, $clonedEnvelope, (string) $this->transport);
56+
$event = new MessageEvent($clonedMessage, $clonedEnvelope, (string) $this->transport);
5857
$this->dispatcher->dispatch($event);
5958
$stamps = $event->getStamps();
6059
}

src/Symfony/Component/Mailer/Tests/EventListener/MessengerTransportListenerTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
use PHPUnit\Framework\TestCase;
1515
use Symfony\Component\Mailer\Envelope;
16-
use Symfony\Component\Mailer\Event\QueuingMessageEvent;
16+
use Symfony\Component\Mailer\Event\MessageEvent;
1717
use Symfony\Component\Mailer\EventListener\MessengerTransportListener;
1818
use Symfony\Component\Messenger\Stamp\TransportNamesStamp;
1919
use Symfony\Component\Mime\Address;
@@ -27,7 +27,7 @@ public function testNoMessengerTransportStampsByDefault()
2727
$l = new MessengerTransportListener();
2828
$envelope = new Envelope(new Address('sender@example.com'), [new Address('recipient@example.com')]);
2929
$message = new Message(new Headers());
30-
$event = new QueuingMessageEvent($message, $envelope, 'smtp');
30+
$event = new MessageEvent($message, $envelope, 'smtp');
3131
$l->onMessage($event);
3232
$this->assertEmpty($event->getStamps());
3333
}
@@ -38,7 +38,7 @@ public function testMessengerTransportStampViaHeader()
3838
$envelope = new Envelope(new Address('sender@example.com'), [new Address('recipient@example.com')]);
3939
$headers = (new Headers())->addTextHeader('X-Bus-Transport', 'async');
4040
$message = new Message($headers);
41-
$event = new QueuingMessageEvent($message, $envelope, 'smtp');
41+
$event = new MessageEvent($message, $envelope, 'smtp', true);
4242
$l->onMessage($event);
4343
$this->assertCount(1, $event->getStamps());
4444
/* @var TransportNamesStamp $stamp */
@@ -54,7 +54,7 @@ public function testMessengerTransportStampsViaHeader()
5454
$name = 'söme_very_long_and_weïrd transport name-for-messenger!';
5555
$headers = (new Headers())->addTextHeader('X-Bus-Transport', ' async , async1,'.$name);
5656
$message = new Message($headers);
57-
$event = new QueuingMessageEvent($message, $envelope, 'smtp');
57+
$event = new MessageEvent($message, $envelope, 'smtp', true);
5858
$l->onMessage($event);
5959
$this->assertCount(1, $event->getStamps());
6060
/* @var TransportNamesStamp $stamp */

src/Symfony/Component/Mailer/Tests/MailerTest.php

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

1414
use PHPUnit\Framework\TestCase;
1515
use Psr\EventDispatcher\EventDispatcherInterface;
16-
use Symfony\Component\Mailer\Event\QueuingMessageEvent;
16+
use Symfony\Component\Mailer\Event\MessageEvent;
1717
use Symfony\Component\Mailer\Exception\LogicException;
1818
use Symfony\Component\Mailer\Mailer;
1919
use Symfony\Component\Mailer\Transport\NullTransport;
@@ -54,7 +54,7 @@ public function dispatch($message, array $stamps = []): Envelope
5454
$dispatcher = $this->createMock(EventDispatcherInterface::class);
5555
$dispatcher->expects($this->once())
5656
->method('dispatch')
57-
->with(self::callback(static function (QueuingMessageEvent $event) use ($stamp) {
57+
->with(self::callback(static function (MessageEvent $event) use ($stamp) {
5858
$event->addStamp($stamp);
5959

6060
return 'Time for Symfony Mailer!' === $event->getMessage()->getSubject();

0 commit comments

Comments
 (0)