Вход Регистрация
Файл: vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOSqlsrv/Driver.php
Строк: 142
<?php

namespace DoctrineDBALDriverPDOSqlsrv;

use 
DoctrineDBALDriverAbstractSQLServerDriver;
use 
DoctrineDBALDriverAbstractSQLServerDriverExceptionPortWithoutHost;
use 
DoctrineDBALDriverPDO;
use 
DoctrineDeprecationsDeprecation;

use function 
is_int;
use function 
sprintf;

/**
 * The PDO-based Sqlsrv driver.
 *
 * @deprecated Use {@link PDOSQLSrvDriver} instead.
 */
class Driver extends AbstractSQLServerDriver
{
    
/**
     * {@inheritdoc}
     */
    
public function connect(array $params$username null$password null, array $driverOptions = [])
    {
        
$pdoOptions $dsnOptions = [];

        foreach (
$driverOptions as $option => $value) {
            if (
is_int($option)) {
                
$pdoOptions[$option] = $value;
            } else {
                
$dsnOptions[$option] = $value;
            }
        }

        return new 
PDOSQLSrvConnection(
            
$this->_constructPdoDsn($params$dsnOptions),
            
$username,
            
$password,
            
$pdoOptions
        
);
    }

    
/**
     * Constructs the Sqlsrv PDO DSN.
     *
     * @param mixed[]  $params
     * @param string[] $connectionOptions
     *
     * @return string The DSN.
     */
    
private function _constructPdoDsn(array $params, array $connectionOptions)
    {
        
$dsn 'sqlsrv:server=';

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

            if (isset(
$params['port'])) {
                
$dsn .= ',' $params['port'];
            }
        } elseif (isset(
$params['port'])) {
            throw 
PortWithoutHost::new();
        }

        if (isset(
$params['dbname'])) {
            
$connectionOptions['Database'] = $params['dbname'];
        }

        if (isset(
$params['MultipleActiveResultSets'])) {
            
$connectionOptions['MultipleActiveResultSets'] = $params['MultipleActiveResultSets'] ? 'true' 'false';
        }

        return 
$dsn $this->getConnectionOptionsDsn($connectionOptions);
    }

    
/**
     * Converts a connection options array to the DSN
     *
     * @param string[] $connectionOptions
     */
    
private function getConnectionOptionsDsn(array $connectionOptions): string
    
{
        
$connectionOptionsDsn '';

        foreach (
$connectionOptions as $paramName => $paramValue) {
            
$connectionOptionsDsn .= sprintf(';%s=%s'$paramName$paramValue);
        }

        return 
$connectionOptionsDsn;
    }

    
/**
     * {@inheritdoc}
     *
     * @deprecated
     */
    
public function getName()
    {
        
Deprecation::trigger(
            
'doctrine/dbal',
            
'https://github.com/doctrine/dbal/issues/3580',
            
'Driver::getName() is deprecated'
        
);

        return 
'pdo_sqlsrv';
    }
}
Онлайн: 1
Реклама