Passed
Pull Request — master (#72)
by Dmitriy
03:21
created

MailerInterfaceProxy::send()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 2
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 5
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yiisoft\Mailer\Debug;
6
7
use Yiisoft\Mailer\MailerInterface;
8
use Yiisoft\Mailer\MessageBodyTemplate;
9
use Yiisoft\Mailer\MessageInterface;
10
11
final class MailerInterfaceProxy implements MailerInterface
12
{
13
    public function __construct(
14
        private MailerInterface $decorated,
15
        private MailerCollector $collector
16
    ) {
17
    }
18
19
    public function compose($view = null, array $viewParameters = [], array $layoutParameters = []): MessageInterface
20
    {
21
        return $this->decorated->compose($view, $viewParameters, $layoutParameters);
22
    }
23
24
    public function send(MessageInterface $message): void
25
    {
26
        $this->collector->collectMessage($message);
27
28
        $this->decorated->send($message);
29
    }
30
31
    public function sendMultiple(array $messages): array
32
    {
33
        $this->collector->collectMessages($messages);
34
        return $this->decorated->sendMultiple($messages);
35
    }
36
37
    public function withTemplate(MessageBodyTemplate $template): MailerInterface
38
    {
39
        return new self(
40
            $this->decorated->withTemplate($template),
41
            $this->collector,
42
        );
43
    }
44
45
    public function withLocale(string $locale): MailerInterface
46
    {
47
        return new self(
48
            $this->decorated->withLocale($locale),
49
            $this->collector,
50
        );
51
    }
52
}
53