ProfileLogMiddleware::routeAction()   A
last analyzed

Complexity

Conditions 4
Paths 4

Size

Total Lines 12
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
eloc 6
c 3
b 0
f 0
dl 0
loc 12
rs 10
cc 4
nc 4
nop 1
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