ClassResolver   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Test Coverage

Coverage 92.31%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 10
c 1
b 0
f 0
dl 0
loc 44
ccs 12
cts 13
cp 0.9231
rs 10
wmc 6

4 Methods

Rating   Name   Duplication   Size   Complexity  
A validController() 0 3 1
A resolveFromClasses() 0 8 3
A newController() 0 4 1
A resolveFromParams() 0 4 1
1
<?php
2
3
namespace Nip\Dispatcher\Resolver;
4
5
use Nip\Controllers\Controller;
6
use Nip\Dispatcher\Resolver\ClassResolver\NameGenerator;
7
8
/**
9
 * Class ClassResolver
10
 * @package Nip\Dispatcher\Resolver
11
 */
12
class ClassResolver
13
{
14
    /**
15
     * @param $module
16
     * @param $controller
17
     * @return Controller
18
     */
19 1
    public static function resolveFromParams($module, $controller)
20
    {
21 1
        $classes = NameGenerator::generateClasses($module, $controller);
22 1
        return self::resolveFromClasses($classes);
23
    }
24
25
    /**
26
     * @param $controllerNames
27
     * @return Controller|null
28
     */
29 3
    public static function resolveFromClasses($controllerNames)
30
    {
31 3
        foreach ($controllerNames as $class) {
32 3
            if (self::validController($class)) {
33 3
                return self::newController($class);
34
            }
35
        }
36
        return null;
37
    }
38
39
    /**
40
     * @param $class
41
     * @return bool
42
     */
43 3
    protected static function validController($class)
44
    {
45 3
        return class_exists($class);
46
    }
47
48
    /**
49
     * @param string $class
50
     * @return Controller
51
     */
52 4
    public static function newController($class)
53
    {
54 4
        $controller = new $class();
55 4
        return $controller;
56
    }
57
}
58