Вход Регистрация
Файл: vendor/doctrine/dbal/src/Driver/PDO/OCI/Driver.php
Строк: 57
<?php

namespace DoctrineDBALDriverPDOOCI;

use 
DoctrineDBALDriverAbstractOracleDriver;
use 
DoctrineDBALDriverPDOConnection;
use 
DoctrineDBALDriverPDOException;
use 
PDO;
use 
PDOException;
use 
SensitiveParameter;

final class 
Driver extends AbstractOracleDriver
{
    
/**
     * {@inheritDoc}
     *
     * @return Connection
     */
    
public function connect(
        
#[SensitiveParameter]
        
array $params
    
) {
        
$driverOptions $params['driverOptions'] ?? [];

        if (! empty(
$params['persistent'])) {
            
$driverOptions[PDO::ATTR_PERSISTENT] = true;
        }

        
$safeParams $params;
        unset(
$safeParams['password'], $safeParams['url']);

        try {
            
$pdo = new PDO(
                
$this->constructPdoDsn($params),
                
$params['user'] ?? '',
                
$params['password'] ?? '',
                
$driverOptions,
            );
        } catch (
PDOException $exception) {
            throw 
Exception::new($exception);
        }

        return new 
Connection($pdo);
    }

    
/**
     * Constructs the Oracle PDO DSN.
     *
     * @param mixed[] $params
     */
    
private function constructPdoDsn(array $params): string
    
{
        
$dsn 'oci:dbname=' $this->getEasyConnectString($params);

        if (isset(
$params['charset'])) {
            
$dsn .= ';charset=' $params['charset'];
        }

        return 
$dsn;
    }
}
Онлайн: 2
Реклама