Failed Conditions
Pull Request — develop (#3525)
by Jonathan
12:46
created

Driver::connect()   B

Complexity

Conditions 8
Paths 65

Size

Total Lines 32
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 72

Importance

Changes 0
Metric Value
eloc 16
dl 0
loc 32
ccs 0
cts 17
cp 0
rs 8.4444
c 0
b 0
f 0
cc 8
nc 65
nop 4
crap 72
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Doctrine\DBAL\Driver\SQLSrv;
6
7
use Doctrine\DBAL\Driver\AbstractSQLServerDriver;
8
9
/**
10
 * Driver for ext/sqlsrv.
11
 */
12
class Driver extends AbstractSQLServerDriver
13
{
14
    /**
15
     * {@inheritdoc}
16
     */
17
    public function connect(array $params, $username = null, $password = null, array $driverOptions = [])
18
    {
19
        if (! isset($params['host'])) {
20
            throw new SQLSrvException("Missing 'host' in configuration for sqlsrv driver.");
21
        }
22
23
        $serverName = $params['host'];
24
        if (isset($params['port'])) {
25
            $serverName .= ', ' . $params['port'];
26
        }
27
28
        if (isset($params['dbname'])) {
29
            $driverOptions['Database'] = $params['dbname'];
30
        }
31
32
        if (isset($params['charset'])) {
33
            $driverOptions['CharacterSet'] = $params['charset'];
34
        }
35
36
        if ($username !== null) {
37
            $driverOptions['UID'] = $username;
38
        }
39
40
        if ($password !== null) {
41
            $driverOptions['PWD'] = $password;
42
        }
43
44
        if (! isset($driverOptions['ReturnDatesAsStrings'])) {
45
            $driverOptions['ReturnDatesAsStrings'] = 1;
46
        }
47
48
        return new SQLSrvConnection($serverName, $driverOptions);
49
    }
50
51
    /**
52
     * {@inheritdoc}
53
     */
54 27
    public function getName()
55
    {
56 27
        return 'sqlsrv';
57
    }
58
}
59