Conditions | 6 |
Paths | 22 |
Total Lines | 22 |
Code Lines | 15 |
Lines | 0 |
Ratio | 0 % |
Changes | 1 | ||
Bugs | 0 | Features | 0 |
1 | <?php |
||
21 | public static function createConnection(?array $database = null) |
||
22 | { |
||
23 | $dbConf = $database ?? CACHEER_DATABASE_CONFIG[Connect::getConnection()]; |
||
24 | |||
25 | if ($dbConf['driver'] === 'sqlite') { |
||
26 | $dbName = $dbConf['dbname']; |
||
27 | $dbDsn = $dbConf['driver'] . ':' . $dbName; |
||
28 | } else { |
||
29 | $dbName = "{$dbConf['driver']}-{$dbConf['dbname']}@{$dbConf['host']}"; |
||
|
|||
30 | $dbDsn = "{$dbConf['driver']}:host={$dbConf['host']};dbname={$dbConf['dbname']};port={$dbConf['port']}"; |
||
31 | } |
||
32 | |||
33 | try { |
||
34 | $options = $dbConf['options'] ?? []; |
||
35 | foreach ($options as $key => $value) { |
||
36 | if (is_string($value) && defined($value)) { |
||
37 | $options[$key] = constant($value); |
||
38 | } |
||
39 | } |
||
40 | return new PDO($dbDsn, $dbConf['username'] ?? null, $dbConf['passwd'] ?? null, $options); |
||
41 | } catch (PDOException $exception) { |
||
42 | throw ConnectionException::create($exception->getMessage(), $exception->getCode(), $exception->getPrevious()); |
||
43 | } |
||
46 |