Test Setup Failed
Push — master ( ecdc34...0769f8 )
by Gabriel
02:46 queued 11s
created

HasModulesRoutesTrait   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 55
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Test Coverage

Coverage 61.9%

Importance

Changes 0
Metric Value
dl 0
loc 55
ccs 13
cts 21
cp 0.619
rs 10
c 0
b 0
f 0
wmc 8
lcom 0
cbo 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A generateGenericModuleDefaultRoutes() 0 8 2
A generateModuleRouteClassBase() 0 10 3
A generateModuleDefaultErrorRoutes() 0 4 1
A generateModuleErrorRoutes() 0 7 2
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 3
    public static function generateGenericModuleDefaultRoutes($collection, $module, $prefix)
20
    {
21 3
        $moduleName = is_array($module) ? $module[0] : $module;
22 3
        self::generateIndexRoute($collection, $moduleName, self::generateModuleRouteClassBase($module, 'Literal'),
23
            $prefix);
24 3
        self::generateStandardRoute($collection, $moduleName . ".default",
25 3
            self::generateModuleRouteClassBase($module, 'Standard'), $prefix);
26 3
    }
27
28
    /**
29
     * @param string|array $module
30
     * @param string $type
31
     * @return string
32
     */
33 3
    public static function generateModuleRouteClassBase($module, $type)
34
    {
35 3
        if (is_array($module)) {
36 2
            $namespace = $module[1];
37 2
            $module = $module[0];
38 2
            $module = $module == 'default' ? 'frontend' : $module;
39 2
            return $namespace . 'Modules\\' . ucfirst($module) . '\Routes\\' . ucfirst($type) . 'Route';
40
        }
41 1
        return ucfirst($module) . '_Route_' . ucfirst($type);
42
    }
43
44
    /**
45
     * @param RouteCollection $collection
46
     * @param $class
47
     */
48
    public static function generateModuleDefaultErrorRoutes($collection, $class)
49
    {
50
        self::generateModuleErrorRoutes($collection, $class, 'default');
51
    }
52
53
    /**
54
     * @param RouteCollection $collection
55
     * @param $class
56
     * @param string $module
57
     */
58
    public static function generateModuleErrorRoutes($collection, $class, $module = 'default')
59
    {
60
        foreach (['403', '404', '500'] as $code) {
61
            self::generateLiteralRoute($collection, $module . ".error." . $code, $class, '', '/' . $code,
62
                ["controller" => "error", "action" => "index", "error_type" => $code]);
63
        }
64
    }
65
}
66