ClassResolver::resolveFromParams()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 2
c 0
b 0
f 0
nc 1
nop 2
dl 0
loc 4
ccs 3
cts 3
cp 1
crap 1
rs 10
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