Passed
Push — master ( 75226e...249573 )
by Sergii
04:43
created

Router   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 59
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 3
dl 0
loc 59
ccs 0
cts 15
cp 0
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A dispatch() 0 2 1
A addRoute() 0 3 1
A __construct() 0 9 1
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: conci
5
 * Date: 10/25/17
6
 * Time: 11:56 AM
7
 */
8
9
namespace sonrac\WAMP\Routers;
10
11
use sonrac\WAMP\Contracts\WAMPRouterInterface;
12
use Thruway\Peer\Router as PeerRouter;
13
/**
14
 * Class Router
15
 *
16
 * @package sonrac\WAMP\Routers
17
 */
18
class Router extends PeerRouter implements WAMPRouterInterface
19
{
20
    use RouterTrait;
21
22
    /**
23
     * RPC router
24
     *
25
     * @var \sonrac\WAMP\Contracts\RPCRouterInterface
26
     */
27
    protected $rpcRouter;
28
29
    /**
30
     * Publisher/subscription router
31
     *
32
     * @var \sonrac\WAMP\Contracts\PubSubRouterInterface
33
     */
34
    protected $pubSubRouter;
35
36
    protected $loop;
37
    /**
38
     * Routes
39
     *
40
     * @var array
41
     */
42
    protected $routes = [];
43
44
    /**
45
     * Router constructor.
46
     *
47
     * @param \sonrac\WAMP\Contracts\RPCRouterInterface    $RPCRouter
48
     * @param \sonrac\WAMP\Contracts\PubSubRouterInterface $pubSubRouter
49
     * @param \React\EventLoop\LoopInterface|null          $loop
50
     */
51
    public function __construct(
52
        \sonrac\WAMP\Contracts\RPCRouterInterface $RPCRouter,
53
        \sonrac\WAMP\Contracts\PubSubRouterInterface $pubSubRouter,
54
        \React\EventLoop\LoopInterface $loop = null
55
    ) {
56
        $this->rpcRouter = $RPCRouter;
57
        $this->pubSubRouter = $pubSubRouter;
58
59
        parent::__construct($loop);
60
    }
61
62
    /**
63
     * @inheritDoc
64
     */
65
    public function dispatch()
66
    {
67
68
    }
69
70
    /**
71
     * @param string          $path     Route path
72
     * @param \Closure|string $callback Handler
73
     */
74
    public function addRoute($path, $callback)
75
    {
76
        $this->routes[$path] = $callback;
77
    }
78
79
}
80