Passed
Push — master ( 16cc4b...9db413 )
by Viktor
01:52
created

QueueSpoolJob::execute()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 1
dl 0
loc 6
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace izumi\spoolmailer\spools;
4
5
use izumi\spoolmailer\ImportedMessage;
6
use Swift_Message;
7
use yii\base\InvalidConfigException;
8
use yii\base\Object;
9
use yii\di\Instance;
10
use yii\mail\BaseMailer;
11
use yii\queue\Job;
12
use yii\queue\Queue;
13
14
/**
15
 * Job for QueueSpool.
16
 *
17
 * @author Viktor Khokhryakov <[email protected]>
18
 */
19
class QueueSpoolJob extends Object implements Job
20
{
21
    /**
22
     * @var array|string the application component ID of the mailer object.
23
     */
24
    public $mailer = 'mailer';
25
    /**
26
     * @var Swift_Message
27
     */
28
    public $message;
29
30
    /**
31
     * @inheritdoc
32
     */
33
    public function init()
34
    {
35
        if (!$this->message instanceof Swift_Message) {
36
            throw new InvalidConfigException('The message should be an instance of "Swift_Message".');
37
        }
38
    }
39
40
    /**
41
     * @param Queue $queue which pushed and is handling the job
42
     */
43
    public function execute($queue)
44
    {
45
        /** @var BaseMailer $mailer */
46
        $mailer = Instance::ensure($this->mailer, BaseMailer::className());
47
        $message = new ImportedMessage($this->message);
48
        $mailer->send($message);
49
    }
50
}
51