Subversion-Projekte lars-tiefland.laravel_shop

Revision

Zur aktuellen Revision | Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
namespace Doctrine\DBAL\Driver\OCI8;
4
 
5
use Doctrine\DBAL\Driver\AbstractOracleDriver;
6
use Doctrine\DBAL\Driver\OCI8\Exception\ConnectionFailed;
7
 
8
use function oci_connect;
9
use function oci_pconnect;
10
 
11
use const OCI_NO_AUTO_COMMIT;
12
 
13
/**
14
 * A Doctrine DBAL driver for the Oracle OCI8 PHP extensions.
15
 */
16
final class Driver extends AbstractOracleDriver
17
{
18
    /**
19
     * {@inheritdoc}
20
     *
21
     * @return Connection
22
     */
23
    public function connect(array $params)
24
    {
25
        $username    = $params['user'] ?? '';
26
        $password    = $params['password'] ?? '';
27
        $charset     = $params['charset'] ?? '';
28
        $sessionMode = $params['sessionMode'] ?? OCI_NO_AUTO_COMMIT;
29
 
30
        $connectionString = $this->getEasyConnectString($params);
31
 
32
        if (! empty($params['persistent'])) {
33
            $connection = @oci_pconnect($username, $password, $connectionString, $charset, $sessionMode);
34
        } else {
35
            $connection = @oci_connect($username, $password, $connectionString, $charset, $sessionMode);
36
        }
37
 
38
        if ($connection === false) {
39
            throw ConnectionFailed::new();
40
        }
41
 
42
        return new Connection($connection);
43
    }
44
}