Passed
Push — master ( 2492fd...d1ccc3 )
by Nicolas
03:21
created

WorkerContext::setWorkerLogger()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 6
ccs 3
cts 3
cp 1
rs 9.4285
cc 1
eloc 3
nc 1
nop 1
crap 1
1
<?php
2
3
namespace Puzzle\AMQP\Workers;
4
5
use Psr\Log\LoggerAwareTrait;
6
use Puzzle\AMQP\Consumer;
7
use Psr\Log\LoggerInterface;
8
use Psr\Log\NullLogger;
9
10
class WorkerContext
11
{
12
    use LoggerAwareTrait;
13
14
    private
15
        $queueName,
16
        $description,
17
        $consumer,
18
        $workerLogger,
19
        $worker;
20
21 5
    public function __construct(\Closure $worker, Consumer $consumer, $queueName)
22
    {
23 5
        $this->worker = $worker;
24 5
        $this->consumer = $consumer;
25 5
        $this->queueName = $queueName;
26 5
        $this->description = null;
27 5
        $this->logger = new NullLogger();
28 5
        $this->workerLogger = null;
29 5
    }
30
31 2
    public function getWorker()
32
    {
33 2
        if($this->worker instanceof \Closure)
34 2
        {
35 2
            $closure = $this->worker;
36 2
            $this->worker = $closure();
37 2
            $this->worker->setLogger($this->getLoggerForWorker());
38 2
        }
39
40 2
        return $this->worker;
41
    }
42
43 2
    private function getLoggerForWorker()
44
    {
45 2
        if($this->workerLogger instanceof LoggerInterface)
46 2
        {
47 1
            return $this->workerLogger;
48
        }
49
50 1
        return $this->logger;
51
    }
52
53 1
    public function setLogger(LoggerInterface $logger)
54
    {
55 1
        $this->logger = $logger;
56 1
        $this->consumer->setLogger($logger);
57
58 1
        return $this;
59
    }
60
61 1
    public function setWorkerLogger(LoggerInterface $logger)
62
    {
63 1
        $this->workerLogger = $logger;
64
65 1
        return $this;
66
    }
67
68 2
    public function getLogger()
69
    {
70 2
        return $this->logger;
71
    }
72
73
    public function getConsumer()
74
    {
75
        return $this->consumer;
76
    }
77
78 1
    public function setDescription($description)
79
    {
80 1
        $this->description = $description;
81
82 1
        return $this;
83
    }
84
85 2
    public function getDescription()
86
    {
87 2
        return $this->description;
88
    }
89
90 3
    public function getQueueName()
91
    {
92 3
        return $this->queueName;
93
    }
94
}
95