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