DatabaseManipulatorFactory   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
eloc 13
c 3
b 0
f 0
dl 0
loc 26
rs 10
wmc 4

3 Methods

Rating   Name   Duplication   Size   Complexity  
A createManipulator() 0 8 2
A createManipulatorWithConfig() 0 4 1
A __construct() 0 4 1
1
<?php
2
3
namespace yentu\factories;
4
5
use clearice\io\Io;
6
use yentu\exceptions\DatabaseManipulatorException;
7
use yentu\manipulators\AbstractDatabaseManipulator;
8
use ntentan\atiaa\DriverFactory;
9
10
/**
11
 * Description of DatabaseManipulatorFactory
12
 *
13
 * @author ekow
14
 */
15
class DatabaseManipulatorFactory
16
{
17
    private $driverFactory;
18
    private $io;
19
    
20
    public function __construct(DriverFactory $driverFactory, Io $io)
21
    {
22
        $this->driverFactory = $driverFactory;
23
        $this->io = $io;
24
    }
25
    
26
    public function createManipulator() : AbstractDatabaseManipulator
27
    {
28
        $config = $this->driverFactory->getConfig();
29
        $class = "\\yentu\\manipulators\\" . ucfirst($config['driver']);
30
        if(class_exists($class)) {
31
            return new $class($this->driverFactory, $this->io);
32
        } else {
33
            throw new DatabaseManipulatorException("Database manipulator class [$class] does not exist.");
34
        }
35
    }
36
37
    public function createManipulatorWithConfig($config) : AbstractDatabaseManipulator
38
    {
39
        $this->driverFactory->setConfig($config);
40
        return $this->createManipulator();
41
    }
42
43
}
44