Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 15
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
SQLiteAccess
0.00% covered (danger)
0.00%
0 / 15
0.00% covered (danger)
0.00%
0 / 2
42
0.00% covered (danger)
0.00%
0 / 1
 connect
0.00% covered (danger)
0.00%
0 / 8
0.00% covered (danger)
0.00%
0 / 1
12
 postConnect
0.00% covered (danger)
0.00%
0 / 7
0.00% covered (danger)
0.00%
0 / 1
12
1<?php
2
3/**
4 * @package ClientDLDB
5 * @copyright BerlinOnline Stadtportal GmbH & Co. KG
6 **/
7
8namespace BO\Zmsdldb;
9
10/**
11 *
12 */
13class SQLiteAccess extends PDOAccess
14{
15    const DEFAULT_DATABASE_NAME = 'dldb_frontend_dev';
16    const DEFAULT_DATABASE_PATH = __DIR__;
17
18    #[\Override]
19    protected function connect(array $options)
20    {
21        try {
22            $databasePath = rtrim(($options['databasePath'] ?? static::DEFAULT_DATABASE_PATH), \DIRECTORY_SEPARATOR);
23
24            if (!is_dir($databasePath)) {
25                mkdir($databasePath);
26            }
27            $database = ($options['database'] ?? static::DEFAULT_DATABASE_NAME) . '.db';
28            $dsn = 'sqlite:' . $databasePath . \DIRECTORY_SEPARATOR . $database;
29
30            $this->pdo = new \PDO($dsn);
31        } catch (\Exception $e) {
32            throw $e;
33        }
34    }
35
36    #[\Override]
37    protected function postConnect()
38    {
39        try {
40            $this->beginTransaction();
41            $shemaQuerys = include(__DIR__ . '/shema/sqlite.php');
42
43            foreach ($shemaQuerys as $query) {
44                $this->exec($query);
45            }
46            $this->commit();
47        } catch (\Exception $e) {
48            throw $e;
49        }
50    }
51}