| 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 |