createConnection method

Future<PDOInterface> createConnection(
  1. Map<String, dynamic> conf
)
override

Create a new PDO connection.

@param string $dsn @param array $config @param array $options @return \PDO Aqui que cria a conexão com o Banco de Dados de fato

Implementation

Future<PDOInterface> createConnection(Map<String, dynamic> conf) async {
  // clone – evita side-effects entre requisições
  final config = Map<String, dynamic>.from(conf);

  if (config.containsKey('schema')) {
    config['schema'] = formatSchema(config['schema']);
  }

  final pdoConfig = PDOConfig.fromMap(config);
  late PDOInterface pdo;

  switch (conf['driver_implementation']) {
    case 'postgres':
      pdo = PostgresV2PDO(pdoConfig);
      break;
    case 'postgres_v3':
      pdo = PostgresV3PDO(pdoConfig);
      break;
    case 'dargres':
      pdo = DargresPDO(pdoConfig);
      break;
    default:
      pdo = PostgresV2PDO(pdoConfig);
  }
  await pdo.connect();
  return pdo;
}