AmqpConnectionFactory   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 1
dl 0
loc 44
ccs 10
cts 10
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A createConnection() 0 13 3
1
<?php
2
namespace PSB\Core\Transport\RabbitMq;
3
4
5
use AMQPConnection;
6
use PSB\Core\Transport\TransportConnectionFactoryInterface;
7
use PSB\Core\Util\Settings;
8
9
class AmqpConnectionFactory implements TransportConnectionFactoryInterface
10
{
11
    /**
12
     * @var array
13
     */
14
    private $defaultCredentials = [
15
        'host' => '127.0.0.1',
16
        'port' => '5672',
17
        'vhost' => '/',
18
        'login' => 'guest',
19
        'password' => 'guest',
20
        'heartbeat' => 5
21
    ];
22
23
    /**
24
     * @var Settings
25
     */
26
    private $settings;
27
28
    /**
29
     * @param Settings $settings
30
     */
31 4
    public function __construct(Settings $settings)
32
    {
33 4
        $this->settings = $settings;
34 4
    }
35
36
    /**
37
     * @return AMQPConnection
38
     */
39 2
    public function createConnection()
40
    {
41
        /** @var AMQPConnection $connection */
42 2
        $connection = $this->settings->tryGet(RabbitMqKnownSettingsEnum::CONNECTION);
43
44 2
        if (!$connection) {
45 1
            $connectionCredentials = $this->settings->tryGet(RabbitMqKnownSettingsEnum::CONNECTION_CREDENTIALS) ?: [];
46 1
            $connectionCredentials = array_replace($this->defaultCredentials, $connectionCredentials);
47 1
            $connection = new AMQPConnection($connectionCredentials);
48
        }
49
50 2
        return $connection;
51
    }
52
}
53