Doctrine\DBAL\DriverManager::getConnection PHP Method

getConnection() public static method

This method returns a Doctrine\DBAL\Connection which wraps the underlying driver connection. $params must contain at least one of the following. Either 'driver' with one of the following values: pdo_mysql pdo_sqlite pdo_pgsql pdo_oci (unstable) pdo_sqlsrv pdo_sqlsrv mysqli sqlanywhere sqlsrv ibm_db2 (unstable) drizzle_pdo_mysql OR 'driverClass' that contains the full class name (with namespace) of the driver class to instantiate. Other (optional) parameters: user (string): The username to use when connecting. password (string): The password to use when connecting. driverOptions (array): Any additional driver-specific options for the driver. These are just passed through to the driver. pdo: You can pass an existing PDO instance through this parameter. The PDO instance will be wrapped in a Doctrine\DBAL\Connection. wrapperClass: You may specify a custom wrapper class through the 'wrapperClass' parameter but this class MUST inherit from Doctrine\DBAL\Connection. driverClass: The driver class to use.
public static getConnection ( array $params, Doctrine\DBAL\Configuration $config = null, Doctrine\Common\EventManager $eventManager = null ) : Doctrine\DBAL\Connection
$params array The parameters.
$config Doctrine\DBAL\Configuration The configuration to use.
$eventManager Doctrine\Common\EventManager The event manager to use.
return Doctrine\DBAL\Connection
    public static function getConnection(array $params, Configuration $config = null, EventManager $eventManager = null)
    {
        // create default config and event manager, if not set
        if (!$config) {
            $config = new Configuration();
        }
        if (!$eventManager) {
            $eventManager = new EventManager();
        }
        $params = self::parseDatabaseUrl($params);
        // check for existing pdo object
        if (isset($params['pdo']) && !$params['pdo'] instanceof \PDO) {
            throw DBALException::invalidPdoInstance();
        } elseif (isset($params['pdo'])) {
            $params['pdo']->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
            $params['driver'] = 'pdo_' . $params['pdo']->getAttribute(\PDO::ATTR_DRIVER_NAME);
        } else {
            self::_checkParams($params);
        }
        if (isset($params['driverClass'])) {
            $className = $params['driverClass'];
        } else {
            $className = self::$_driverMap[$params['driver']];
        }
        $driver = new $className();
        $wrapperClass = 'Doctrine\\DBAL\\Connection';
        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, $config, $eventManager);
    }

Usage Example

 protected function setUp()
 {
     $this->app = $app = new Container();
     $db_config = ['driver' => 'pdo_sqlite', 'dbname' => 'sqlite:///:memory:'];
     $models = ['post.model' => function () use($app) {
         return new Post($app);
     }, 'comment.model' => 'Comment'];
     $app['db'] = function () use($db_config) {
         $db = \Doctrine\DBAL\DriverManager::getConnection($db_config);
         $sql = file_get_contents(codecept_data_dir() . '/dump.sql');
         $db->exec($sql);
         return $db;
     };
     foreach ($models as $name => $class) {
         if (is_callable($class)) {
             $callable = $class;
         } else {
             $callable = function () use($class, $app) {
                 return new $class($app);
             };
         }
         $app[$name] = $app->factory($callable);
     }
     $this->loadFixtures();
 }
All Usage Examples Of Doctrine\DBAL\DriverManager::getConnection