Subversion-Projekte lars-tiefland.laravel_shop

Revision

Revision 148 | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
namespace Doctrine\DBAL\Driver\SQLSrv;
4
 
5
use Doctrine\DBAL\Driver\AbstractSQLServerDriver;
6
use Doctrine\DBAL\Driver\AbstractSQLServerDriver\Exception\PortWithoutHost;
7
use Doctrine\DBAL\Driver\SQLSrv\Exception\Error;
621 lars 8
use SensitiveParameter;
148 lars 9
 
10
use function sqlsrv_configure;
11
use function sqlsrv_connect;
12
 
13
/**
14
 * Driver for ext/sqlsrv.
15
 */
16
final class Driver extends AbstractSQLServerDriver
17
{
18
    /**
19
     * {@inheritdoc}
20
     *
21
     * @return Connection
22
     */
621 lars 23
    public function connect(
24
        #[SensitiveParameter]
25
        array $params
26
    ) {
148 lars 27
        $serverName = '';
28
 
29
        if (isset($params['host'])) {
30
            $serverName = $params['host'];
31
 
32
            if (isset($params['port'])) {
33
                $serverName .= ',' . $params['port'];
34
            }
35
        } elseif (isset($params['port'])) {
36
            throw PortWithoutHost::new();
37
        }
38
 
39
        $driverOptions = $params['driverOptions'] ?? [];
40
 
41
        if (isset($params['dbname'])) {
42
            $driverOptions['Database'] = $params['dbname'];
43
        }
44
 
45
        if (isset($params['charset'])) {
46
            $driverOptions['CharacterSet'] = $params['charset'];
47
        }
48
 
49
        if (isset($params['user'])) {
50
            $driverOptions['UID'] = $params['user'];
51
        }
52
 
53
        if (isset($params['password'])) {
54
            $driverOptions['PWD'] = $params['password'];
55
        }
56
 
57
        if (! isset($driverOptions['ReturnDatesAsStrings'])) {
58
            $driverOptions['ReturnDatesAsStrings'] = 1;
59
        }
60
 
61
        if (! sqlsrv_configure('WarningsReturnAsErrors', 0)) {
62
            throw Error::new();
63
        }
64
 
65
        $connection = sqlsrv_connect($serverName, $driverOptions);
66
 
67
        if ($connection === false) {
68
            throw Error::new();
69
        }
70
 
71
        return new Connection($connection);
72
    }
73
}