HasAdapterTrait   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 56
Duplicated Lines 0 %

Test Coverage

Coverage 61.11%

Importance

Changes 2
Bugs 1 Features 0
Metric Value
eloc 11
c 2
b 1
f 0
dl 0
loc 56
ccs 11
cts 18
cp 0.6111
rs 10
wmc 7

6 Methods

Rating   Name   Duplication   Size   Complexity  
A setAdapterName() 0 3 1
A getAdapter() 0 7 2
A initAdapter() 0 3 1
A getAdapterClass() 0 3 1
A setAdapter() 0 3 1
A newAdapter() 0 5 1
1
<?php
2
3
namespace Nip\Database\Adapters;
4
5
/**
6
 * Trait HasAdapterTrait
7
 * @package Nip\Database\Adapters
8
 */
9
trait HasAdapterTrait
10
{
11
    protected $_adapter = null;
12
13
    /**
14
     * @return AbstractAdapter
15
     */
16 3
    public function getAdapter()
17
    {
18 3
        if ($this->_adapter == null) {
19
            $this->initAdapter();
20
        }
21
22 3
        return $this->_adapter;
23
    }
24
25
    /**
26
     * @param $adapter
27
     */
28 20
    public function setAdapter($adapter)
29
    {
30 20
        $this->_adapter = $adapter;
31 20
    }
32
33
    public function initAdapter()
34
    {
35
        $this->setAdapterName('MySQLi');
36
    }
37
38
    /**
39
     * @param $name
40
     */
41
    public function setAdapterName($name)
42
    {
43
        $this->setAdapter($this->newAdapter($name));
44
    }
45
46
    /**
47
     * @param $name
48
     *
49
     * @return AbstractAdapter
50
     */
51 1
    public function newAdapter($name)
52
    {
53 1
        $class = static::getAdapterClass($name);
54
55 1
        return new $class();
56
    }
57
58
    /**
59
     * @param $name
60
     * @return string
61
     */
62 2
    public static function getAdapterClass($name)
63
    {
64 2
        return '\Nip\Database\Adapters\\' . $name;
65
    }
66
}
67