Passed
Push — master ( 5383f1...af8f48 )
by Gabriel
03:29
created

generateGenericModuleDefaultRoutes()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 20
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 2
eloc 15
c 1
b 0
f 1
nc 2
nop 3
dl 0
loc 20
ccs 0
cts 16
cp 0
crap 6
rs 9.7666
1
<?php
2
3
namespace Nip\Router\RouteFactory;
4
5
use Nip\Router\RouteCollection;
6
7
/**
8
 * Trait HasModulesRoutesTrait
9
 * @package Nip\Router\RouteFactory
10
 */
11
trait HasModulesRoutesTrait
12
{
13
14
    /**
15
     * @param RouteCollection $collection
16
     * @param $module
17
     * @param $prefix
18
     */
19
    public static function generateGenericModuleDefaultRoutes($collection, $module, $prefix)
20
    {
21
        $moduleName = is_array($module) ? $module[0] : $module;
22
        $params = ['module' => $module];
23
24
        self::generateIndexRoute(
25
            $collection,
26
            $moduleName,
27
            self::generateModuleRouteClassBase($module, 'Literal'),
28
            $prefix,
29
            $params
30
        );
31
32
        self::generateStandardRoute(
33
            $collection,
34
            $moduleName . ".default",
35
            self::generateModuleRouteClassBase($module, 'Standard'),
36
            $prefix,
37
            null,
38
            $params
39
            );
40
    }
41
42
    /**
43
     * @param string|array $module
44
     * @param string $type
45
     * @return string
46
     */
47
    public static function generateModuleRouteClassBase($module, $type)
48
    {
49
        if (is_array($module)) {
50
            $namespace = $module[1];
51
            $module = $module[0];
52
            $module = $module == 'default' ? 'frontend' : $module;
53
            return $namespace . 'Modules\\' . ucfirst($module) . '\Routes\\' . ucfirst($type) . 'Route';
54
        }
55
        return ucfirst($module) . '_Route_' . ucfirst($type);
56
    }
57
58
    /**
59
     * @param RouteCollection $collection
60
     * @param $class
61
     */
62
    public static function generateModuleDefaultErrorRoutes($collection, $class)
63
    {
64
        self::generateModuleErrorRoutes($collection, $class, 'default');
65
    }
66
67
    /**
68
     * @param RouteCollection $collection
69
     * @param $class
70
     * @param string $module
71
     */
72
    public static function generateModuleErrorRoutes($collection, $class, $module = 'default')
73
    {
74
        foreach (['403', '404', '500'] as $code) {
75
            self::generateLiteralRoute($collection, $module . ".error." . $code, $class, '', '/' . $code,
76
                ["controller" => "error", "action" => "index", "error_type" => $code]);
77
        }
78
    }
79
}
80