Completed
Push — master ( 9bf1e4...223d51 )
by Sergii
04:53
created

RouterTrait::group()   A

Complexity

Conditions 4
Paths 8

Size

Total Lines 10
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 20

Importance

Changes 0
Metric Value
dl 0
loc 10
ccs 0
cts 9
cp 0
rs 9.2
c 0
b 0
f 0
cc 4
eloc 7
nc 8
nop 2
crap 20
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 *
5
 * @author Donii Sergii <[email protected]>
6
 * Date: 10/25/17
7
 * Time: 11:57 AM
8
 */
9
10
namespace sonrac\WAMP\Routers;
11
12
use Thruway\Peer\RouterInterface;
13
14
/**
15
 * Trait RouterTrait.
16
 * Base router trait.
17
 */
18
trait RouterTrait
19
{
20
    /**
21
     * Router groups.
22
     *
23
     * @var null|\sonrac\WAMP\GroupsConfigInterface[]
24
     */
25
    protected $groups = null;
26
27
    /**
28
     * Main router
29
     *
30
     * @var null|\Thruway\Peer\RouterInterface|\sonrac\WAMP\Routers\Router
31
     *
32
     * @author Donii Sergii <[email protected]>
33
     */
34
    protected $router = null;
35
36
    /**
37
     * Group routes
38
     *
39
     * @param array    $config Group config
40
     * @param \Closure $runner Closure runner group
41
     *
42
     * @author Donii Sergii <[email protected]>
43
     */
44
    public function group(array $config, \Closure $runner)
45
    {
46
        $middleware = isset($config['middleware']) ? explode('|', $config['middleware']) : [];
47
        $namespace = isset($config['namespace']) ? $config['namespace'] : 'App\Controllers\WAMP';
48
49
        $this->groups[] = (object) [
50
            'middleware' => $middleware,
51
            'namespace'  => $namespace,
52
            'prefix'     => isset($config['prefix']) ? $config['prefix'] : '',
53
            'callback'   => $runner,
54
        ];
55
    }
56
57
    /**
58
     * Set router.
59
     *
60
     * @author Donii Sergii <[email protected]>
61
     */
62
    public function setRouter(RouterInterface $router)
63
    {
64
        $this->router = $router;
65
    }
66
67
}
68