Completed
Push — master ( 4be27a...24b753 )
by Aimeos
03:01 queued 03:01
created

Laravel   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 8
c 1
b 0
f 0
dl 0
loc 39
rs 10
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A send() 0 4 1
A create() 0 6 1
A __construct() 0 3 1
1
<?php
2
3
/**
4
 * @license LGPLv3, http://opensource.org/licenses/LGPL-3.0
5
 * @copyright Aimeos (aimeos.org), 2022
6
 * @package Base
7
 * @subpackage Mail
8
 */
9
10
11
namespace Aimeos\Base\Mail;
12
13
14
/**
15
 * Laravel implementation for creating and sending e-mails.
16
 *
17
 * @package Base
18
 * @subpackage Mail
19
 */
20
class Laravel implements \Aimeos\Base\Mail\Iface
21
{
22
	private $mailer;
23
24
	/**
25
	 * Initializes the instance of the class.
26
	 *
27
	 * @param \Illuminate\Mail\Mailer $closure Laravel mailer object
28
	 */
29
	public function __construct( \Closure $mailer )
30
	{
31
		$this->mailer = $mailer;
32
	}
33
34
35
	/**
36
	 * Creates a new e-mail message object.
37
	 *
38
	 * @param string $charset Default charset of the message
39
	 * @return \Aimeos\Base\Mail\Message\Iface E-mail message object
40
	 */
41
	public function create( string $charset = 'UTF-8' ) : \Aimeos\Base\Mail\Message\Iface
42
	{
43
		$mailer = $this->mailer;
44
		$message = new \Symfony\Component\Mime\Email();
45
46
		return new \Aimeos\Base\Mail\Message\Laravel( $mailer(), $message, $charset );
47
	}
48
49
50
	/**
51
	 * Sends the e-mail message to the mail server.
52
	 *
53
	 * @param \Aimeos\Base\Mail\Message\Iface $message E-mail message object
54
	 */
55
	public function send( \Aimeos\Base\Mail\Message\Iface $message ) : Iface
56
	{
57
		$message->send();
58
		return $this;
59
	}
60
}
61