Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
15 / 15
100.00% covered (success)
100.00%
3 / 3
CRAP
100.00% covered (success)
100.00%
1 / 1
MariaDatabase
100.00% covered (success)
100.00%
15 / 15
100.00% covered (success)
100.00%
3 / 3
4
100.00% covered (success)
100.00%
1 / 1
 connect
100.00% covered (success)
100.00%
12 / 12
100.00% covered (success)
100.00%
1 / 1
2
 escapeName
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 escapeLike
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace Dynart\Micro\Entities\Database;
4
5use Dynart\Micro\Entities\Database;
6
7class MariaDatabase extends Database {
8
9    protected function connect(): void {
10        if ($this->connected()) {
11            return;
12        }
13        $this->pdo = $this->pdoBuilder
14            ->dsn($this->configValue('dsn'))
15            ->username($this->configValue('username'))
16            ->password($this->configValue('password'))
17            ->options([\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION])
18            ->build();
19        $this->setConnected(true);
20        $dbName = $this->escapeName($this->configValue('name'));
21        $this->query("use $dbName");
22        $this->query("set names 'utf8'");
23    }
24
25    public function escapeName(string $name): string {
26        $parts = explode('.', $name);
27        return '`'.join('`.`', $parts).'`';
28    }
29
30    public function escapeLike(string $string): string {
31        return str_replace('%', '\\%', $string);
32    }
33}