DB2Driver.php 1.29 KB
Newer Older
1 2
<?php

Benjamin Eberlei's avatar
Benjamin Eberlei committed
3
namespace Doctrine\DBAL\Driver\IBMDB2;
4

5
use Doctrine\DBAL\Driver\AbstractDB2Driver;
6 7

/**
Benjamin Morel's avatar
Benjamin Morel committed
8
 * IBM DB2 Driver.
9
 */
10
class DB2Driver extends AbstractDB2Driver
11 12
{
    /**
Benjamin Morel's avatar
Benjamin Morel committed
13
     * {@inheritdoc}
14
     */
15
    public function connect(array $params, $username = null, $password = null, array $driverOptions = [])
16
    {
17
        if (! isset($params['protocol'])) {
18
            $params['protocol'] = 'TCPIP';
19 20
        }

21
        if ($params['host'] !== 'localhost' && $params['host'] !== '127.0.0.1') {
22
            // if the host isn't localhost, use extended connection params
23
            $params['dbname'] = 'DRIVER={IBM DB2 ODBC DRIVER}' .
24 25 26
                     ';DATABASE=' . $params['dbname'] .
                     ';HOSTNAME=' . $params['host'] .
                     ';PROTOCOL=' . $params['protocol'] .
27 28
                     ';UID=' . $username .
                     ';PWD=' . $password . ';';
29 30 31 32
            if (isset($params['port'])) {
                $params['dbname'] .= 'PORT=' . $params['port'];
            }

33 34 35 36
            $username = null;
            $password = null;
        }

Sergei Morozov's avatar
Sergei Morozov committed
37
        return new DB2Connection($params, (string) $username, (string) $password, $driverOptions);
38 39 40
    }

    /**
Benjamin Morel's avatar
Benjamin Morel committed
41
     * {@inheritdoc}
42 43
     *
     * @deprecated
44 45 46 47 48 49
     */
    public function getName()
    {
        return 'ibm_db2';
    }
}