Passed
Push — master ( 29f4c1...b8c44c )
by Mike
03:51
created

Worker::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 2
dl 0
loc 6
ccs 3
cts 3
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
3
4
namespace Xervice\RabbitMQ\Business\Model\Worker;
5
6
7
use Symfony\Component\Console\Output\OutputInterface;
8
use Xervice\RabbitMQ\Business\Model\Worker\Consumer\ConsumerInterface;
9
use Xervice\RabbitMQ\Business\Model\Worker\Listener\ListenerCollection;
10
11
class Worker implements WorkerInterface
12
{
13
    /**
14
     * @var \Xervice\RabbitMQ\Business\Model\Worker\Listener\ListenerCollection
15
     */
16
    private $listenerCollection;
17
18
    /**
19
     * @var \Xervice\RabbitMQ\Business\Model\Worker\Consumer\ConsumerInterface
20
     */
21
    private $consumer;
22
23
    /**
24
     * Worker constructor.
25
     *
26
     * @param \Xervice\RabbitMQ\Business\Model\Worker\Listener\ListenerCollection $listenerCollection
27
     * @param \Xervice\RabbitMQ\Business\Model\Worker\Consumer\ConsumerInterface $consumer
28
     */
29 2
    public function __construct(
30
        ListenerCollection $listenerCollection,
31
        ConsumerInterface $consumer
32
    ) {
33 2
        $this->listenerCollection = $listenerCollection;
34 2
        $this->consumer = $consumer;
35 2
    }
36
37
    /**
38
     * @param \Symfony\Component\Console\Output\OutputInterface $output
39
     */
40 2
    public function runWorker(OutputInterface $output = null): void
41
    {
42 2
        foreach ($this->listenerCollection as $listener) {
43 2
            if ($output !== null && $output->isDebug()) {
44
                $output->writeln('Run listener for queue <info>' . $listener->getQueueName() . '</info>');
45
            }
46 2
            $this->consumer->consumeQueries($listener);
47
        }
48
    }
49
}