public static function Connection::open in Drupal 10
Same name in this branch
- 10 core/modules/sqlite/src/Driver/Database/sqlite/Connection.php \Drupal\sqlite\Driver\Database\sqlite\Connection::open()
- 10 core/modules/pgsql/src/Driver/Database/pgsql/Connection.php \Drupal\pgsql\Driver\Database\pgsql\Connection::open()
- 10 core/modules/mysql/src/Driver/Database/mysql/Connection.php \Drupal\mysql\Driver\Database\mysql\Connection::open()
4 calls to Connection::open()
- MigrateSqlIdMapTest::testGetQualifiedMapTablePrefix in core/modules/migrate/tests/src/Unit/MigrateSqlIdMapTest.php
- Tests the getQualifiedMapTable method with a prefixed database.
- MigrateSqlSourceTestBase::getDatabase in core/modules/migrate/tests/src/Kernel/MigrateSqlSourceTestBase.php
- Builds an in-memory SQLite database from a set of source data.
- MigrateTestCase::getDatabase in core/modules/migrate/tests/src/Unit/MigrateTestCase.php
- Gets an SQLite database connection object for use in tests.
- QueryBatchTest::getDatabase in core/modules/migrate/tests/src/Kernel/QueryBatchTest.php
- Builds an in-memory SQLite database from a set of source data.
File
- core/modules/sqlite/src/Driver/Database/sqlite/Connection.php, line 98
Class
- Connection
- SQLite implementation of \Drupal\Core\Database\Connection.
Namespace
Drupal\sqlite\Driver\Database\sqlite
Code
public static function open(array &$connection_options = []) {
$connection_options += [
'pdo' => [],
];
$connection_options['pdo'] += [
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
\PDO::ATTR_STRINGIFY_FETCHES => TRUE,
];
try {
$pdo = new \PDO('sqlite:' . $connection_options['database'], '', '', $connection_options['pdo']);
} catch (\PDOException $e) {
if ($e
->getCode() == static::DATABASE_NOT_FOUND) {
throw new DatabaseNotFoundException($e
->getMessage(), $e
->getCode(), $e);
}
throw $e;
}
$pdo
->sqliteCreateFunction('if', [
__CLASS__,
'sqlFunctionIf',
]);
$pdo
->sqliteCreateFunction('greatest', [
__CLASS__,
'sqlFunctionGreatest',
]);
$pdo
->sqliteCreateFunction('least', [
__CLASS__,
'sqlFunctionLeast',
]);
$pdo
->sqliteCreateFunction('pow', 'pow', 2);
$pdo
->sqliteCreateFunction('exp', 'exp', 1);
$pdo
->sqliteCreateFunction('length', 'strlen', 1);
$pdo
->sqliteCreateFunction('md5', 'md5', 1);
$pdo
->sqliteCreateFunction('concat', [
__CLASS__,
'sqlFunctionConcat',
]);
$pdo
->sqliteCreateFunction('concat_ws', [
__CLASS__,
'sqlFunctionConcatWs',
]);
$pdo
->sqliteCreateFunction('substring', [
__CLASS__,
'sqlFunctionSubstring',
], 3);
$pdo
->sqliteCreateFunction('substring_index', [
__CLASS__,
'sqlFunctionSubstringIndex',
], 3);
$pdo
->sqliteCreateFunction('rand', [
__CLASS__,
'sqlFunctionRand',
]);
$pdo
->sqliteCreateFunction('regexp', [
__CLASS__,
'sqlFunctionRegexp',
]);
$pdo
->sqliteCreateFunction('glob', [
__CLASS__,
'sqlFunctionLikeBinary',
]);
$pdo
->sqliteCreateCollation('NOCASE_UTF8', [
'Drupal\\Component\\Utility\\Unicode',
'strcasecmp',
]);
$connection_options += [
'init_commands' => [],
];
$connection_options['init_commands'] += [
'wal' => "PRAGMA journal_mode=WAL",
];
if (isset($connection_options['init_commands'])) {
$pdo
->exec(implode('; ', $connection_options['init_commands']));
}
return $pdo;
}