FEATURE: add first basics of profiler
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
<?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']
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user