SQLite::connectToServer()   A
last analyzed

Complexity

Conditions 3
Paths 4

Size

Total Lines 20
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 10
CRAP Score 3

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 9
c 1
b 0
f 0
dl 0
loc 20
ccs 10
cts 10
cp 1
rs 9.9666
cc 3
nc 4
nop 0
crap 3
1
<?php
2
3
namespace kalanis\kw_mapper\Storage\Database\PDO;
4
5
6
use kalanis\kw_mapper\Storage\Database\Dialects;
7
use PDO;
8
9
10
/**
11
 * Class SQLite
12
 * @package kalanis\kw_mapper\Storage\Database\PDO
13
 */
14
class SQLite extends APDO
15
{
16
    protected string $extension = 'pdo_sqlite';
17
18 19
    public function languageDialect(): string
19
    {
20 19
        return Dialects\SQLite::class;
21
    }
22
23 1
    protected function connectToServer(): PDO
24
    {
25 1
        $connection = new PDO('sqlite:' . $this->config->getLocation() . $this->config->getDatabase(), $this->config->getUser(), $this->config->getPassword());
26 1
        $connection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
27 1
        $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
28 1
        $connection->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
29 1
        if ($this->config->isPersistent()) {
30 1
            $connection->setAttribute(PDO::ATTR_PERSISTENT, true);
31
        }
32
33 1
        foreach ($this->attributes as $key => $value){
34 1
            $connection->setAttribute($key, $value);
35
        }
36
37
//        $connection->exec('PRAGMA main.cache_size = 10000;');
38
//        $connection->exec('PRAGMA main.temp_store = MEMORY;');
39
//        $connection->exec('PRAGMA foreign_keys = ON;');
40
//        $connection->exec('PRAGMA main.journal_mode = WAL;');
41
42 1
        return $connection;
43
    }
44
}
45