3 namespace Doctrine\DBAL\Driver\PDOPgSql;
5 use Doctrine\DBAL\Platforms;
8 * Driver that connects through pdo_pgsql.
12 class Driver implements \Doctrine\DBAL\Driver
15 * Attempts to connect to the database and returns a driver connection on success.
17 * @return \Doctrine\DBAL\Driver\Connection
19 public function connect(array $params, $username = null, $password = null, array $driverOptions = array())
21 return new \Doctrine\DBAL\Driver\PDOConnection(
22 $this->_constructPdoDsn($params),
30 * Constructs the Postgres PDO DSN.
32 * @return string The DSN.
34 private function _constructPdoDsn(array $params)
37 if (isset($params['host']) && $params['host'] != '') {
38 $dsn .= 'host=' . $params['host'] . ' ';
40 if (isset($params['port']) && $params['port'] != '') {
41 $dsn .= 'port=' . $params['port'] . ' ';
43 if (isset($params['dbname'])) {
44 $dsn .= 'dbname=' . $params['dbname'] . ' ';
50 public function getDatabasePlatform()
52 return new \Doctrine\DBAL\Platforms\PostgreSqlPlatform();
55 public function getSchemaManager(\Doctrine\DBAL\Connection $conn)
57 return new \Doctrine\DBAL\Schema\PostgreSqlSchemaManager($conn);
60 public function getName()
65 public function getDatabase(\Doctrine\DBAL\Connection $conn)
67 $params = $conn->getParams();
68 return $params['dbname'];