Failed Conditions
Pull Request — master (#3469)
by Sergei
15:32 queued 12:49
created

Driver   A

Complexity

Total Complexity 10

Size/Duplication

Total Lines 56
Duplicated Lines 0 %

Test Coverage

Coverage 87.5%

Importance

Changes 0
Metric Value
wmc 10
eloc 23
dl 0
loc 56
ccs 21
cts 24
cp 0.875
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getName() 0 3 1
B constructPdoDsn() 0 20 7
A connect() 0 14 2
1
<?php
2
3
namespace Doctrine\DBAL\Driver\PDOMySql;
4
5
use Doctrine\DBAL\DBALException;
6
use Doctrine\DBAL\Driver\AbstractMySQLDriver;
7
use Doctrine\DBAL\Driver\PDOConnection;
8
use PDOException;
9
10
/**
11
 * PDO MySql driver.
12
 */
13
class Driver extends AbstractMySQLDriver
14
{
15
    /**
16
     * {@inheritdoc}
17
     */
18 325
    public function connect(array $params, $username = null, $password = null, array $driverOptions = [])
19
    {
20
        try {
21 325
            $conn = new PDOConnection(
22 325
                $this->constructPdoDsn($params),
23
                $username,
24
                $password,
25 325
                $driverOptions
26
            );
27 213
        } catch (PDOException $e) {
28 213
            throw DBALException::driverException($this, $e);
29
        }
30
31 325
        return $conn;
32
    }
33
34
    /**
35
     * Constructs the MySql PDO DSN.
36
     *
37
     * @param mixed[] $params
38
     *
39
     * @return string The DSN.
40
     */
41 325
    protected function constructPdoDsn(array $params)
42
    {
43 325
        $dsn = 'mysql:';
44 325
        if (isset($params['host']) && $params['host'] !== '') {
45 325
            $dsn .= 'host=' . $params['host'] . ';';
46
        }
47 325
        if (isset($params['port'])) {
48 325
            $dsn .= 'port=' . $params['port'] . ';';
49
        }
50 325
        if (isset($params['dbname'])) {
51 325
            $dsn .= 'dbname=' . $params['dbname'] . ';';
52
        }
53 325
        if (isset($params['unix_socket'])) {
54
            $dsn .= 'unix_socket=' . $params['unix_socket'] . ';';
55
        }
56 325
        if (isset($params['charset'])) {
57 136
            $dsn .= 'charset=' . $params['charset'] . ';';
58
        }
59
60 325
        return $dsn;
61
    }
62
63
    /**
64
     * {@inheritdoc}
65
     */
66 338
    public function getName()
67
    {
68 338
        return 'pdo_mysql';
69
    }
70
}
71