NewRelic.php 857 Bytes
<?php

namespace FootyRoom\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class NewRelic
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request $request
     * @param  \Closure $next
     *
     * @return \Illuminate\Http\Response
     */
    public function handle(Request $request, Closure $next)
    {
        $response = $next($request);

        if (extension_loaded('newrelic')) {
            $route = $request->route();

            if (isset($route[1]['as'])) {
                $transaction = $route[1]['as'];
            } elseif (isset($route[1]['uses'])) {
                $transaction = $route[1]['uses'];
            } else {
                $transaction = $request->getMethod();
            }

            newrelic_name_transaction($transaction);
        }

        return $response;
    }
}