You are here

public function Connection::__construct in Zircon Profile 8

Same name in this branch
  1. 8 core/lib/Drupal/Core/Database/Connection.php \Drupal\Core\Database\Connection::__construct()
  2. 8 core/lib/Drupal/Core/Database/Driver/sqlite/Connection.php \Drupal\Core\Database\Driver\sqlite\Connection::__construct()
  3. 8 core/lib/Drupal/Core/Database/Driver/pgsql/Connection.php \Drupal\Core\Database\Driver\pgsql\Connection::__construct()
  4. 8 core/lib/Drupal/Core/Database/Driver/mysql/Connection.php \Drupal\Core\Database\Driver\mysql\Connection::__construct()
Same name and namespace in other branches
  1. 8.0 core/lib/Drupal/Core/Database/Driver/pgsql/Connection.php \Drupal\Core\Database\Driver\pgsql\Connection::__construct()

Constructs a connection object.

Overrides Connection::__construct

File

core/lib/Drupal/Core/Database/Driver/pgsql/Connection.php, line 58
Contains \Drupal\Core\Database\Driver\pgsql\Connection.

Class

Connection
PostgreSQL implementation of \Drupal\Core\Database\Connection.

Namespace

Drupal\Core\Database\Driver\pgsql

Code

public function __construct(\PDO $connection, array $connection_options) {
  parent::__construct($connection, $connection_options);

  // This driver defaults to transaction support, except if explicitly passed FALSE.
  $this->transactionSupport = !isset($connection_options['transactions']) || $connection_options['transactions'] !== FALSE;

  // Transactional DDL is always available in PostgreSQL,
  // but we'll only enable it if standard transactions are.
  $this->transactionalDDLSupport = $this->transactionSupport;
  $this->connectionOptions = $connection_options;

  // Force PostgreSQL to use the UTF-8 character set by default.
  $this->connection
    ->exec("SET NAMES 'UTF8'");

  // Execute PostgreSQL init_commands.
  if (isset($connection_options['init_commands'])) {
    $this->connection
      ->exec(implode('; ', $connection_options['init_commands']));
  }
}