MenuMiddleware   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 37
rs 10
wmc 4
lcom 0
cbo 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A handle() 0 20 4
1
<?php
2
3
namespace JumpGate\Menu\Middleware;
4
5
use Closure;
6
7
/**
8
 * Class MenuMiddleware
9
 *
10
 * @package JumpGate\Menu\Middleware
11
 */
12
class MenuMiddleware
13
{
14
    /**
15
     * Run the request filter.
16
     *
17
     * This middleware supports laravel 5.0 and 5.1.
18
     * In laravel 5.0 you must specify an additional array option
19
     * with the slug you wish to active. In 5.1 you can just add
20
     * the slug to the middleware after menu:.
21
     *
22
     * @param  \Illuminate\Http\Request $request
23
     * @param  \Closure                 $next
24
     * @param  string|null              $active
25
     *
26
     * @return mixed
27
     */
28
    public function handle($request, Closure $next, $active = null)
29
    {
30
        if ($active !== null) {
31
            // Laravel 5.1 [middleware => menu:slug]
32
            \Menu::setActive($active);
33
        } else {
34
            // Laravel 5.0 [middleware => menu, active => slug]
35
            $route = $request->route();
36
37
            if ($route) {
38
                $actions = $route->getAction();
39
40
                if (array_key_exists('active', $actions)) {
41
                    \Menu::setActive($actions['active']);
42
                }
43
            }
44
        }
45
46
        return $next($request);
47
    }
48
}
49