AMQPSocketConnection::__construct()   B
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 25
Code Lines 22

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 12
CRAP Score 1

Importance

Changes 5
Bugs 2 Features 1
Metric Value
c 5
b 2
f 1
dl 0
loc 25
ccs 12
cts 12
cp 1
rs 8.8571
cc 1
eloc 22
nc 1
nop 11
crap 1

How to fix   Many Parameters   

Many Parameters

Methods with many parameters are not only hard to understand, but their parameters also often become inconsistent when you need more, or different data.

There are several approaches to avoid long parameter lists:

1
<?php
2
namespace PhpAmqpLib\Connection;
3
4
use PhpAmqpLib\Wire\IO\SocketIO;
5
6
class AMQPSocketConnection extends AbstractConnection
7
{
8
    /**
9
     * @param string $host
10
     * @param int $port
11
     * @param string $user
12
     * @param string $password
13
     * @param string $vhost
14
     * @param bool $insist
15
     * @param string $login_method
16
     * @param null $login_response
17
     * @param string $locale
18
     * @param int $timeout
19
     * @param bool $keepalive
20
     */
21 25
    public function __construct(
22
        $host,
23
        $port,
24
        $user,
25
        $password,
26
        $vhost = '/',
27
        $insist = false,
28
        $login_method = 'AMQPLAIN',
29
        $login_response = null,
30
        $locale = 'en_US',
31
        $timeout = 3,
32
        $keepalive = false
33
    ) {
34 25
        $io = new SocketIO($host, $port, $timeout, $keepalive);
35 25
        parent::__construct(
36 20
            $user,
37 20
            $password,
38 20
            $vhost,
39 20
            $insist,
40 20
            $login_method,
41 20
            $login_response,
42 20
            $locale,
43
            $io
44 20
        );
45 25
    }
46
}
47