Passed
Push — master ( 765e8d...53188c )
by Petr
04:43 queued 17s
created

MySQL::connectToServer()   A

Complexity

Conditions 3
Paths 4

Size

Total Lines 28
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 17
CRAP Score 3

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 3
eloc 16
c 1
b 0
f 0
nc 4
nop 0
dl 0
loc 28
ccs 17
cts 17
cp 1
crap 3
rs 9.7333
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 MySQL
12
 * @package kalanis\kw_mapper\Storage\Database\PDO
13
 * Can be also used for Sphinx search engine
14
 */
15
class MySQL extends APDO
16
{
17
    protected $extension = 'pdo_mysql';
18
19 5
    public function languageDialect(): string
20
    {
21 5
        return Dialects\MySQL::class;
22
    }
23
24 1
    protected function connectToServer(): PDO
25
    {
26 1
        ini_set('mysql.connect_timeout', strval($this->config->getTimeout()));
27 1
        ini_set('default_socket_timeout', strval($this->config->getTimeout()));
28
29 1
        $connection = new PDO(
30 1
            sprintf('mysql:host=%s;port=%d;dbname=%s',
31 1
                $this->config->getLocation(),
32 1
                $this->config->getPort(),
33 1
                $this->config->getDatabase()
34
            ),
35 1
            $this->config->getUser(),
36 1
            $this->config->getPassword()
37
        );
38
39 1
        $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
40
41 1
        if ($this->config->isPersistent()) {
42 1
            $connection->setAttribute(PDO::ATTR_PERSISTENT, true);
43
        }
44
45 1
        foreach ($this->attributes as $key => $value){
46 1
            $connection->setAttribute($key, $value);
47
        }
48
49 1
        $connection->query('SET NAMES utf8;');
50
51 1
        return $connection;
52
    }
53
}
54