Completed
Push — master ( 1f684d...57b871 )
by Mike
02:29
created

createExchangeCollection()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 4
nc 1
nop 1
dl 0
loc 9
ccs 4
cts 4
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
3
4
namespace Xervice\RabbitMQ;
5
6
7
use Xervice\Core\Business\Model\Dependency\DependencyContainerInterface;
8
use Xervice\Core\Business\Model\Dependency\Provider\AbstractDependencyProvider;
9
use Xervice\RabbitMQ\Business\Model\Exchange\ExchangeCollection;
10
use Xervice\RabbitMQ\Business\Model\Queue\QueueCollection;
11
use Xervice\RabbitMQ\Business\Model\Worker\Listener\ListenerCollection;
12
13
class RabbitMQDependencyProvider extends AbstractDependencyProvider
14
{
15
    public const RABBITMQ_EXCHANGES = 'rabbitmq.exchanges';
16
    public const RABBITMQ_QUEUES = 'rabbitmq.queues';
17
    public const RABBITMQ_LISTENER = 'rabbitmq.listener';
18
19
    /**
20
     * @param \Xervice\Core\Business\Model\Dependency\DependencyContainerInterface $container
21
     *
22
     * @return \Xervice\Core\Business\Model\Dependency\DependencyContainerInterface
23
     */
24 1
    public function handleDependencies(DependencyContainerInterface $container): DependencyContainerInterface
25
    {
26 1
        $container = $this->createExchangeCollection($container);
27 1
        $container = $this->createQueueCollection($container);
28 1
        $container = $this->createListenerCollection($container);
29
30 1
        return $container;
31
    }
32
33
    /**
34
     * @return \Xervice\RabbitMQ\Business\Dependency\Worker\Listener\ListenerInterface[]
35
     */
36
    protected function getListener(): array
37
    {
38
        return [];
39
    }
40
41
    /**
42
     * @return \Xervice\RabbitMQ\Business\Dependency\Queue\QueueInterface[]
43
     */
44
    protected function getQueues(): array
45
    {
46
        return [];
47
    }
48
49
    /**
50
     * @return \Xervice\RabbitMQ\Business\Dependency\Exchange\ExchangeInterface[]
51
     */
52
    protected function getExchanges(): array
53
    {
54
        return [];
55
    }
56
57
    /**
58
     * @param \Xervice\Core\Business\Model\Dependency\DependencyContainerInterface $container
59
     *
60
     * @return \Xervice\Core\Business\Model\Dependency\DependencyContainerInterface
61
     */
62 1
    private function createExchangeCollection(DependencyContainerInterface $container): DependencyContainerInterface
63
    {
64
        $container[self::RABBITMQ_EXCHANGES] = function (DependencyContainerInterface $container) {
0 ignored issues
show
Unused Code introduced by
The parameter $container is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

64
        $container[self::RABBITMQ_EXCHANGES] = function (/** @scrutinizer ignore-unused */ DependencyContainerInterface $container) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
65 1
            return new ExchangeCollection(
66 1
                $this->getExchanges()
67
            );
68
        };
69
70 1
        return $container;
71
    }
72
73
    /**
74
     * @param \Xervice\Core\Business\Model\Dependency\DependencyContainerInterface $container
75
     *
76
     * @return \Xervice\Core\Business\Model\Dependency\DependencyContainerInterface
77
     */
78 1
    private function createQueueCollection(DependencyContainerInterface $container): DependencyContainerInterface
79
    {
80
        $container[self::RABBITMQ_QUEUES] = function (DependencyContainerInterface $container) {
0 ignored issues
show
Unused Code introduced by
The parameter $container is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

80
        $container[self::RABBITMQ_QUEUES] = function (/** @scrutinizer ignore-unused */ DependencyContainerInterface $container) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
81 1
            return new QueueCollection(
82 1
                $this->getQueues()
83
            );
84
        };
85
86 1
        return $container;
87
    }
88
89
    /**
90
     * @param \Xervice\Core\Business\Model\Dependency\DependencyContainerInterface $container
91
     *
92
     * @return \Xervice\Core\Business\Model\Dependency\DependencyContainerInterface
93
     */
94 1
    private function createListenerCollection(DependencyContainerInterface $container): DependencyContainerInterface
95
    {
96
        $container[self::RABBITMQ_LISTENER] = function (DependencyContainerInterface $container) {
0 ignored issues
show
Unused Code introduced by
The parameter $container is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

96
        $container[self::RABBITMQ_LISTENER] = function (/** @scrutinizer ignore-unused */ DependencyContainerInterface $container) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
97 1
            return new ListenerCollection(
98 1
                $this->getListener()
99
            );
100
        };
101
102 1
        return $container;
103
    }
104
105
}