Passed
Push — master ( 4e2a61...b4d3e2 )
by Iman
09:39
created

StartGuarding::guardRoutes()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 7
dl 0
loc 11
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace Imanghafoori\HeyMan;
4
5
use Illuminate\Routing\Events\RouteMatched;
6
use Illuminate\Support\Facades\Route;
7
use Imanghafoori\HeyMan\WatchingStrategies\Routes\RouteMatchListener;
8
9
class StartGuarding
10
{
11
    public function start()
12
    {
13
        $data = resolve('heyman.chains')->data;
14
        unset($data['route']);
15
16
        foreach ($data as $manager => $f) {
17
            foreach ($f as $value => $callbacks) {
18
                foreach ($callbacks as $key => $cb) {
19
                    resolve($manager)->register($value, $cb, $key);
20
                }
21
            }
22
        }
23
24
        $this->guardRoutes();
25
    }
26
27
    private function guardRoutes()
28
    {
29
        Route::matched(function (RouteMatched $eventObj) {
30
            $matchedRoute = [
31
                $eventObj->route->getName(),
32
                $eventObj->route->getActionName(),
33
                $eventObj->request->method().$eventObj->route->uri,
34
            ];
35
36
            $t = resolve('heyman.chains')->data['route'] ?? [];
37
            resolve(RouteMatchListener::class)->execMatchedCallbacks($matchedRoute, $t);
38
        });
39
    }
40
}