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

RouteFactory::generateIndexRoute()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 16

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

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