FEATURE: add first basics of profiler

This commit is contained in:
Michal Kváček
2017-02-22 08:54:26 +01:00
parent 5132278ee1
commit c027ffe2df
23 changed files with 293 additions and 0 deletions
+43
View File
@@ -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']
]);
}
}
}