Files
core/modules/Profiler/Middleware/Profiler.php
T

43 lines
1.1 KiB
PHP

<?php
namespace Modules\Profiler\Middleware;
use Illuminate\Http\Request;
use Modules\Profiler\Entities\HttpLog;
use Modules\Profiler\Entities\QueryLog;
class Profiler
{
public function handle(Request $request, $next)
{
\DB::enableQueryLog();
return $next($request);
}
public function terminate(Request $request, $response)
{
$this->logRequest($request);
$this->logQueries();
}
protected function logRequest(Request $request)
{
$url = $request->fullUrl();
$method = $request->getMethod();
$time = (microtime(true) - LARAVEL_START) * 1000;
HttpLog::create(['url' => $url, 'method' => $method, 'time' => $time]);
}
protected function logQueries()
{
$queries = \DB::getQueryLog();
foreach ($queries as $query) {
QueryLog::create([
'query' => $query['query'],
'bindings' => $query['bindings'],
'time' => $query['time']
]);
}
}
}