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    protected function connect(array $options)
19    {
20        try {
21            $databasePath = rtrim(($options['databasePath'] ?? static::DEFAULT_DATABASE_PATH), \DIRECTORY_SEPARATOR);
22
23            if (!is_dir($databasePath)) {
24                mkdir($databasePath);
25            }
26            $database = ($options['database'] ?? static::DEFAULT_DATABASE_NAME) . '.db';
27            $dsn = 'sqlite:' . $databasePath . \DIRECTORY_SEPARATOR . $database;
28
29            $this->pdo = new \PDO($dsn);
30        } catch (\Exception $e) {
31            throw $e;
32        }
33    }
34
35    protected function postConnect()
36    {
37        try {
38            $this->beginTransaction();
39            $shemaQuerys = include(__DIR__ . '/shema/sqlite.php');
40
41            foreach ($shemaQuerys as $query) {
42                $this->exec($query);
43            }
44            $this->commit();
45        } catch (\Exception $e) {
46            throw $e;
47        }
48    }
49}