Example #1
0
 /**
  * Connect to the database using the default driver
  *
  * @param string $host
  * @param string $user
  * @param string $password
  * @param string $db
  * @param array $options
  * @return AbstractDatabaseDriver
  * @throws Exception\SelectionException
  * @throws Exception\ConnectionException
  */
 public static function connect($host, $user, $password, $db, array $options = array())
 {
     $configuration = new Configuration();
     $options += array('charset' => $configuration->getCharset(), 'driver' => $configuration->getDriver(), 'connectionid' => self::getDefaultConnectionID(), 'debug' => $configuration->isDebug());
     $id = strtolower($options['connectionid']);
     if (!isset(self::$configurations[$id])) {
         self::registerConfiguration($id, $configuration->toArray());
     }
     if (!isset(self::$connections[$id]) or self::$connections[$id]->isClosed()) {
         $class = self::getDriverClass(strtolower($options['driver']));
         /**@var $connection AbstractDatabaseDriver*/
         $connection = new $class($host, $user, $password, $db, $options);
         $connection->setDebug($options['debug']);
         self::$connections[$id] = $connection;
     }
     return self::$connections[$id];
 }