Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/Database/Connection/ConnectionFactory.php
Строк: 84
<?php
namespace ConcreteCoreDatabaseConnection;

use 
ConcreteCoreApplicationApplication;
use 
ConcreteCoreDatabaseDriverDriverManager;
use 
DoctrineDBALDBALException;

class 
ConnectionFactory
{

    
/** @var Application */
    
protected $app;

    
/** @var DriverManager */
    
protected $driver_manager;

    public function 
__construct(Application $appDriverManager $driver_manager)
    {
        
$this->app $app;
        
$this->driver_manager $driver_manager;
    }

    public function 
createConnection($config)
    {
        
$driver $this->driver_manager->driver(array_get($config'driver'''));

        if (!(
$driver instanceof DoctrineDBALDriver)) {
            
$driver $this->driver_manager->driver();
        }

        
$params $config;
        
$params['host'] = array_get($params'host'array_get($config'server'));
        
$params['user'] = array_get($params'user'array_get($config'username'));
        
$params['wrapperClass'] = array_get($config'wrapperClass''ConcreteCoreDatabaseConnectionConnection');
        unset(
$params['driver']);

        
$wrapperClass 'DoctrineDBALConnection';
        if (isset(
$params['wrapperClass'])) {
            if (
is_subclass_of($params['wrapperClass'], $wrapperClass)) {
                
$wrapperClass $params['wrapperClass'];
            } else {
                throw 
DBALException::invalidWrapperClass($params['wrapperClass']);
            }
        }

        return new 
$wrapperClass($params$driver);
    }

    
/**
     * @param $config
     * @param $name
     * @return DoctrineDBALConnection
     * @throws DBALException
     */
    
public function make($config$name)
    {
        return 
$this->createConnection($config);
    }

    
/**
     * @return DriverManager
     */
    
public function getDriverManager()
    {
        return 
$this->driver_manager;
    }

}
Онлайн: 1
Реклама