invalidWrapperClass() public static method

public static invalidWrapperClass ( string $wrapperClass ) : DBALException
$wrapperClass string
return DBALException
 public function createConnection($config)
 {
     $driver = $this->driver_manager->driver(array_get($config, 'driver', ''));
     if (!$driver instanceof \Doctrine\DBAL\Driver) {
         $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', '\\Concrete\\Core\\Database\\Connection\\Connection');
     unset($params['driver']);
     $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);
 }
Example #2
0
 /**
  * Creates a connection object based on the specified parameters.
  * 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_oracle
  *     pdo_sqlsrv
  *
  * OR 'driverClass' that contains the full class name (with namespace) of the
  * driver class to instantiate.
  *
  * Other (optional) parameters:
  *
  * <b>user (string)</b>:
  * The username to use when connecting.
  *
  * <b>password (string)</b>:
  * The password to use when connecting.
  *
  * <b>driverOptions (array)</b>:
  * Any additional driver-specific options for the driver. These are just passed
  * through to the driver.
  *
  * <b>pdo</b>:
  * You can pass an existing PDO instance through this parameter. The PDO
  * instance will be wrapped in a Doctrine\DBAL\Connection.
  *
  * <b>wrapperClass</b>:
  * You may specify a custom wrapper class through the 'wrapperClass'
  * parameter but this class MUST inherit from Doctrine\DBAL\Connection.
  *
  * <b>driverClass</b>:
  * The driver class to use.
  *
  * @param array $params The parameters.
  * @param Doctrine\DBAL\Configuration The configuration to use.
  * @param 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();
     }
     // check for existing pdo object
     if (isset($params['pdo']) && !$params['pdo'] instanceof \PDO) {
         throw DBALException::invalidPdoInstance();
     } else {
         if (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);
 }
 /**
  * Creates a connection object based on the specified parameters.
  * 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:
  *
  * <b>user (string)</b>:
  * The username to use when connecting.
  *
  * <b>password (string)</b>:
  * The password to use when connecting.
  *
  * <b>driverOptions (array)</b>:
  * Any additional driver-specific options for the driver. These are just passed
  * through to the driver.
  *
  * <b>pdo</b>:
  * You can pass an existing PDO instance through this parameter. The PDO
  * instance will be wrapped in a Doctrine\DBAL\Connection.
  *
  * <b>wrapperClass</b>:
  * You may specify a custom wrapper class through the 'wrapperClass'
  * parameter but this class MUST inherit from Doctrine\DBAL\Connection.
  *
  * <b>driverClass</b>:
  * The driver class to use.
  *
  * @param array                              $params       The parameters.
  * @param \Doctrine\DBAL\Configuration|null  $config       The configuration to use.
  * @param \Doctrine\Common\EventManager|null $eventManager The event manager to use.
  *
  * @return \Doctrine\DBAL\Connection
  *
  * @throws \Doctrine\DBAL\DBALException
  */
 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();
     } else {
         if (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']);
         }
     }
     if (self::$instance === null) {
         self::$instance = 1;
         //add new Cassandra types
         Type::addType('cassandra_float', 'CassandraPDO4Doctrine\\Doctrine\\DBAL\\Types\\CassandraFloatType');
         Type::addType('cassandra_datetime', 'CassandraPDO4Doctrine\\Doctrine\\DBAL\\Types\\CassandraDateTimeType');
     }
     return new $wrapperClass($params, $driver, $config, $eventManager);
 }