Test Setup Failed
Push — master ( f50e96...1d7e99 )
by Gabriel
07:34 queued 11s
created

RouteFactory   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 93
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
dl 0
loc 93
ccs 0
cts 17
cp 0
rs 10
c 0
b 0
f 0
wmc 4
lcom 1
cbo 1

4 Methods

Rating   Name   Duplication   Size   Complexity  
A generateIndexRoute() 0 16 1
A generateLiteralRoute() 0 12 1
A generateGenericRoute() 0 12 1
A generateStandardRoute() 0 13 1
1
<?php
2
3
namespace Nip\Router;
4
5
/**
6
 * Class RouteCollection
7
 * @package Nip\Router
8
 */
9
class RouteFactory
10
{
11
12
    /**
13
     * @param RouteCollection $collection
14
     * @param $name
15
     * @param $class
16
     * @param string $mapPrefix
17
     * @return mixed
18
     */
19
    public static function generateIndexRoute(
20
        $collection,
21
        $name,
22
        $class,
23
        $mapPrefix = ''
24
    ) {
25
        $params = ["controller" => "index", "action" => "index"];
26
27
        self::generateLiteralRoute(
28
            $collection, $name.'.slash', $class, $mapPrefix, '', $params
29
        );
30
31
        return self::generateLiteralRoute(
32
            $collection, $name, $class, $mapPrefix, '/', $params
33
        );
34
    }
35
36
    /**
37
     * @param RouteCollection $collection
38
     * @param $name
39
     * @param $class
40
     * @param string $mapPrefix
41
     * @param string $map
42
     * @param array $params
43
     * @return mixed
44
     */
45
    public static function generateLiteralRoute(
46
        $collection,
47
        $name,
48
        $class,
49
        $mapPrefix = '',
50
        $map = '/',
51
        $params = []
52
    ) {
53
        $map = $mapPrefix . $map;
54
55
        return self::generateGenericRoute($collection, $name, $class, $map, $params);
56
    }
57
58
    /**
59
     * @param RouteCollection $collection
60
     * @param $name
61
     * @param $class
62
     * @param string $map
63
     * @param array $params
64
     * @return mixed
65
     */
66
    public static function generateGenericRoute(
67
        $collection,
68
        $name,
69
        $class,
70
        $map,
71
        $params = []
72
    ) {
73
        $map = str_replace('//', '/', $map);
74
75
        $route = new $class($map, $params);
76
        return $collection->addRoute($route, $name);
77
    }
78
79
    /**
80
     * @param RouteCollection $collection
81
     * @param $name
82
     * @param $class
83
     * @param string $mapPrefix
84
     * @param string $map
85
     * @param array $params
86
     * @return mixed
87
     */
88
    public static function generateStandardRoute(
89
        $collection,
90
        $name,
91
        $class,
92
        $mapPrefix = '',
93
        $map = '/{controller}/{action?index}',
94
        $params = []
95
    ) {
96
        self::generateGenericRoute($collection, $name, $class, $mapPrefix . $map, $params);
97
        
98
        $params['action'] = 'index';
99
        return self::generateGenericRoute($collection, $name.'.index', $class, $mapPrefix . '/{controller}/', $params);
100
    }
101
}
102