summaryrefslogtreecommitdiff
path: root/vendor/doctrine/dbal/src/Driver/SQLite3/Driver.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/doctrine/dbal/src/Driver/SQLite3/Driver.php')
-rw-r--r--vendor/doctrine/dbal/src/Driver/SQLite3/Driver.php48
1 files changed, 48 insertions, 0 deletions
diff --git a/vendor/doctrine/dbal/src/Driver/SQLite3/Driver.php b/vendor/doctrine/dbal/src/Driver/SQLite3/Driver.php
new file mode 100644
index 0000000..e6996d3
--- /dev/null
+++ b/vendor/doctrine/dbal/src/Driver/SQLite3/Driver.php
@@ -0,0 +1,48 @@
1<?php
2
3declare(strict_types=1);
4
5namespace Doctrine\DBAL\Driver\SQLite3;
6
7use Doctrine\DBAL\Driver\AbstractSQLiteDriver;
8use SensitiveParameter;
9use SQLite3;
10
11final class Driver extends AbstractSQLiteDriver
12{
13 /**
14 * {@inheritDoc}
15 */
16 public function connect(
17 #[SensitiveParameter]
18 array $params,
19 ): Connection {
20 $isMemory = $params['memory'] ?? false;
21
22 if (isset($params['path'])) {
23 if ($isMemory) {
24 throw new Exception(
25 'Invalid connection settings: specifying both parameters "path" and "memory" is ambiguous.',
26 );
27 }
28
29 $filename = $params['path'];
30 } elseif ($isMemory) {
31 $filename = ':memory:';
32 } else {
33 throw new Exception(
34 'Invalid connection settings: specify either the "path" or the "memory" parameter for SQLite3.',
35 );
36 }
37
38 try {
39 $connection = new SQLite3($filename);
40 } catch (\Exception $e) {
41 throw Exception::new($e);
42 }
43
44 $connection->enableExceptions(true);
45
46 return new Connection($connection);
47 }
48}