Completed
Pull Request — master (#33)
by
unknown
09:04 queued 06:09
created

Mail   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 73
Duplicated Lines 0 %

Coupling/Cohesion

Components 2
Dependencies 5

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 8
c 0
b 0
f 0
lcom 2
cbo 5
dl 0
loc 73
ccs 21
cts 21
cp 1
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 1
A send() 0 4 1
B compose() 0 18 5
A attachments() 0 4 1
1
<?php
2
/**
3
 * MtMail - e-mail module for Zend Framework 2
4
 *
5
 * @link      http://github.com/mtymek/MtMail
6
 * @copyright Copyright (c) 2013-2014 Mateusz Tymek
7
 * @license   BSD 2-Clause
8
 */
9
10
namespace MtMail\Service;
11
12
use MtMail\Exception\InvalidArgumentException;
13
use MtMail\Template\SimpleHtml;
14
use Zend\Mail\Message;
15
use Zend\View\Model\ModelInterface;
16
use Zend\View\Model\ViewModel;
17
18
class Mail
19
{
20
21
    /**
22
     * @var Composer
23
     */
24
    protected $composer;
25
26
    /**
27
     * @var Sender
28
     */
29
    protected $sender;
30
31
    /**
32
     * @var TemplateManager
33
     */
34
    protected $templateManager;
35
36
    /**
37
     * Class constructor
38
     *
39
     * @param Composer        $composer
40
     * @param Sender          $sender
41
     * @param TemplateManager $templateManager
42
     */
43 5
    public function __construct(Composer $composer, Sender $sender, TemplateManager $templateManager)
44
    {
45 5
        $this->composer = $composer;
46 5
        $this->sender = $sender;
47 5
        $this->templateManager = $templateManager;
48 5
    }
49
50
    /**
51
     * Send e-mail - wrapper for Sender class
52
     *
53
     * @param Message $message
54
     */
55 1
    public function send(Message $message)
56
    {
57 1
        $this->sender->send($message);
58 1
    }
59
60
    /**
61
     * @param $template
62
     * @param  ModelInterface|array     $viewModel
63
     * @param  array                    $headers
64
     * @throws InvalidArgumentException
65
     * @return Message
66
     */
67 3
    public function compose(array $headers, $template, $viewModel = null)
68
    {
69 3
        if (is_array($viewModel)) {
70 1
            $viewModel = new ViewModel($viewModel);
71 3
        } elseif (null == $viewModel) {
72 2
            $viewModel = new ViewModel();
73 2
        }
74
75 3
        if (is_string($template)) {
76 2
            if ($this->templateManager->has($template)) {
77 1
                $template = $this->templateManager->get($template);
78 1
            } else {
79 1
                $template = new SimpleHtml($template);
80
            }
81 2
        }
82
83 3
        return $this->composer->compose($headers, $template, $viewModel);
84
    }
85
86
    public function attachments(Message $message, array $attachments)
87
    {
88
        return $this->composer->attachments($message, $attachments);
89
    }
90
}
91