Skip to content

Commit 0aaf57b

Browse files
committed
Remove support for older Laravel versions
1 parent b56cedd commit 0aaf57b

File tree

5 files changed

+12
-101
lines changed

5 files changed

+12
-101
lines changed

src/Sender.php

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,8 @@ public function send(Email $email): void
2626
$this->buildMessage($message, $email);
2727
});
2828

29-
// This is used so we can assert things on the sent message in Laravel 9+ since we cannot use
30-
// the Swift Mailer plugin anymore. So this is purely used for in the PHPUnit tests.
31-
if (version_compare(app()->version(), '9.0.0', '>=') && !is_null($sentMessage)) {
29+
// $sentMessage is null when mocking (Mail::shouldReceive('send')->once())
30+
if (!is_null($sentMessage)) {
3231
event(new MessageSent($sentMessage));
3332
}
3433

@@ -50,13 +49,7 @@ private function buildMessage(Message $message, Email $email): void
5049
->subject($email->getSubject())
5150
->from($email->getFromAddress(), $email->getFromName());
5251

53-
if (version_compare(app()->version(), '9.0.0', '>=')) {
54-
// Symfony Mailer
55-
$message->html($email->getBody());
56-
} else {
57-
// SwiftMail
58-
$message->setBody($email->getBody(), 'text/html');
59-
}
52+
$message->html($email->getBody());
6053

6154
$attachmentMap = [
6255
'attachment' => 'attach',

src/SentMessage.php

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
namespace Stackkit\LaravelDatabaseEmails;
66

7-
use Swift_Mime_SimpleMimeEntity;
7+
use Symfony\Component\Mime\Email;
88
use Symfony\Component\Mime\Part\DataPart;
99

1010
class SentMessage
@@ -19,7 +19,7 @@ class SentMessage
1919
public $attachments = [];
2020
public $headers = [];
2121

22-
public static function createFromSymfonyMailer(\Symfony\Component\Mime\Email $email): SentMessage
22+
public static function createFromSymfonyMailer(Email $email): SentMessage
2323
{
2424
$sentMessage = new self();
2525

@@ -54,25 +54,4 @@ public static function createFromSymfonyMailer(\Symfony\Component\Mime\Email $em
5454

5555
return $sentMessage;
5656
}
57-
58-
public static function createFromSwiftMailer(\Swift_Mime_SimpleMessage $message): SentMessage
59-
{
60-
$sentMessage = new self();
61-
62-
$sentMessage->from = $message->getFrom();
63-
$sentMessage->to = $message->getTo();
64-
$sentMessage->cc = $message->getCc();
65-
$sentMessage->bcc = $message->getBcc();
66-
$sentMessage->replyTo = $message->getReplyTo();
67-
$sentMessage->subject = $message->getSubject();
68-
$sentMessage->body = $message->getBody();
69-
$sentMessage->attachments = array_map(function(Swift_Mime_SimpleMimeEntity $entity) {
70-
return [
71-
'body' => $entity->getBody(),
72-
'disposition' => $entity->getContentType() . ' ' . $entity->getHeaders()->get('content-disposition'),
73-
];
74-
}, $message->getChildren());
75-
76-
return $sentMessage;
77-
}
7857
}

tests/MailableReaderTest.php

Lines changed: 1 addition & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,6 @@ class MailableReaderTest extends TestCase
1313
{
1414
private function mailable(): Mailable
1515
{
16-
if (version_compare(app()->version(), '10.0.0', '>=')) {
17-
return new Laravel10TestMailable();
18-
}
19-
2016
return new TestMailable();
2117
}
2218

@@ -121,41 +117,11 @@ public function it_extracts_the_from_address_and_or_name()
121117
->from(null, 'Marick')
122118
)->send();
123119

124-
// 8.x no longer accepts an empty address.
125-
// https://github.com/laravel/framework/pull/39035
126-
if (version_compare(app()->version(), '8.0.0', '>=')) {
127-
$this->assertFalse($email->hasFrom());
128-
} else {
129-
$this->assertTrue($email->hasFrom());
130-
$this->assertEquals(config('mail.from.address'), $email->getFromAddress());
131-
$this->assertEquals('Marick', $email->getFromName());
132-
}
120+
$this->assertFalse($email->hasFrom());
133121
}
134122
}
135123

136124
class TestMailable extends Mailable
137-
{
138-
/**
139-
* Build the message.
140-
*
141-
* @return $this
142-
*/
143-
public function build()
144-
{
145-
return $this->to('[email protected]')
146-
147-
148-
149-
->subject('Your order has shipped!')
150-
->attach(__DIR__ . '/files/pdf-sample.pdf', [
151-
'mime' => 'application/pdf',
152-
])
153-
->attachData('<p>Thanks for your oder</p>', 'order.html')
154-
->view('tests::dummy', ['name' => 'John Doe']);
155-
}
156-
}
157-
158-
class Laravel10TestMailable extends Mailable
159125
{
160126
public function content(): Content
161127
{

tests/SenderTest.php

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,23 @@
66
use Illuminate\Support\Facades\Event;
77
use Stackkit\LaravelDatabaseEmails\MessageSent;
88
use Stackkit\LaravelDatabaseEmails\SentMessage;
9-
use Swift_Events_SendEvent;
109
use Illuminate\Support\Facades\Mail;
1110
use Stackkit\LaravelDatabaseEmails\Email;
1211

1312
class SenderTest extends TestCase
1413
{
15-
/** @var Swift_Events_SendEvent[] */
14+
/** @var array<SentMessage> */
1615
public $sent = [];
1716

1817
public function setUp(): void
1918
{
2019
parent::setUp();
2120

22-
if (version_compare(app()->version(), '9.0.0', '>=')) {
23-
Event::listen(MessageSent::class, function (MessageSent $event) {
24-
$this->sent[] = SentMessage::createFromSymfonyMailer(
25-
$event->message->getSymfonySentMessage()->getOriginalMessage()
26-
);
27-
});
28-
} else {
29-
Mail::getSwiftMailer()->registerPlugin(new TestingMailEventListener($this));
30-
}
21+
Event::listen(MessageSent::class, function (MessageSent $event) {
22+
$this->sent[] = SentMessage::createFromSymfonyMailer(
23+
$event->message->getSymfonySentMessage()->getOriginalMessage()
24+
);
25+
});
3126
}
3227

3328
/** @test */

tests/TestingMailEventListener.php

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

0 commit comments

Comments
 (0)