RouteGroup   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 9
dl 0
loc 45
rs 10
c 0
b 0
f 0
wmc 4

3 Methods

Rating   Name   Duplication   Size   Complexity  
A endGroup() 0 3 1
A path() 0 9 1
A startGroup() 0 3 2
1
<?php
2
3
namespace Controlabs\Routify;
4
5
class RouteGroup
6
{
7
    /**
8
     * An array of the groups.
9
     *
10
     * @var array
11
     */
12
    protected $groups = [];
13
14
    /**
15
     * Start a group
16
     *
17
     * @param string  $group
18
     *
19
     * @return void
20
     */
21
    public function startGroup(string $group)
22
    {
23
        ($group) && array_push($this->groups, $group);
24
    }
25
26
    /**
27
     * Ends a group
28
     *
29
     * @return void
30
     */
31
    public function endGroup()
32
    {
33
        array_pop($this->groups);
34
    }
35
36
    /**
37
     * Returns a complete path
38
     *
39
     * @return string
40
     */
41
    public function path()
42
    {
43
        $clean = function($v) {
44
            return str_replace('/', '', $v);
45
        };
46
47
        return join(
48
            '/',
49
            array_map($clean, $this->groups)
50
        );
51
    }
52
}
53