ProfileLogMiddleware   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
wmc 5
eloc 10
c 3
b 0
f 0
dl 0
loc 37
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A handle() 0 9 1
A routeAction() 0 12 4
1
<?php
2
3
namespace Bavix\Prof\Middleware;
4
5
use Bavix\Prof\Services\ProfileLogService;
6
use Illuminate\Http\Request;
7
use Illuminate\Support\Facades\Route;
8
use Closure;
9
10
class ProfileLogMiddleware
11
{
12
13
    /**
14
     * @param Request $request
15
     * @param Closure $next
16
     * @return mixed
17
     */
18
    public function handle(Request $request, Closure $next)
19
    {
20
        /**
21
         * Run in front of the controller to evaluate its operation.
22
         */
23
        app(ProfileLogService::class)
24
            ->tick($this->routeAction($request));
25
26
        return $next($request);
27
    }
28
29
    /**
30
     * We get routeAction for the controller and for the closure.
31
     *
32
     * @param Request $request
33
     * @return string
34
     */
35
    protected function routeAction(Request $request): string
36
    {
37
        $routeName = Route::currentRouteName();
38
        if (!$routeName || \strpos($routeName, 'generated::') === 0) {
39
            $routeName = Route::currentRouteAction();
40
        }
41
42
        if (!$routeName) {
43
            $routeName = 'app:' . \str_replace('/', ':', $request->route()->uri);
44
        }
45
46
        return $routeName;
47
    }
48
49
}
50