FEATURE #2389 @2h: add request detail into profiler

This commit is contained in:
Michal Kváček
2017-03-24 01:28:21 +01:00
parent 52e02d67c6
commit 05c9e56973
11 changed files with 273 additions and 90 deletions
@@ -1,15 +1,28 @@
<?php namespace Modules\Profiler\Http\Controllers;
use App\Http\Controllers\Admin\Controller;
use Illuminate\Support\Facades\Input;
use Modules\Profiler\Entities\HttpLog;
class ProfilerController extends Controller
{
public function index()
{
$filters = [];
$httpLog = HttpLog::orderBy('created_at', 'DESC')
->with('queries')
->paginate(25);
->with('queries');
if (Input::get('method')) {
$filters[] = 'method';
$httpLog = $httpLog->where('method', Input::get('method'));
}
if (Input::get('url')) {
$filters[] = 'url';
$httpLog = $httpLog->where('url', Input::get('url'));
}
$httpLog = $httpLog->paginate(25);
return view('profiler::index', compact('httpLog'));
}
@@ -0,0 +1,23 @@
<?php
namespace Modules\Profiler\Http\Controllers;
use App\Http\Controllers\Admin\Controller;
use Modules\Profiler\Entities\HttpLog;
class RequestController extends Controller
{
public function detail(HttpLog $httpLog)
{
$sameRequests = HttpLog::where('url', $httpLog->url)
->where('method', $httpLog->method)
->get();
$times = [
'avg' => $sameRequests->avg('time'),
'min' => $sameRequests->min('time'),
'max' => $sameRequests->max('time')
];
return view('profiler::request.detail', compact('httpLog', 'sameRequests', 'times'));
}
}
+11 -5
View File
@@ -1,14 +1,20 @@
<?php
Route::group([
'prefix' => LaravelLocalization::setLocale(),
'namespace' => 'Modules\Profiler\Http\Controllers'
'prefix' => LaravelLocalization::setLocale(),
'namespace' => 'Modules\Profiler\Http\Controllers'
], function () {
Route::group([
'middleware' => ['admin'],
'prefix' => 'profiler'
'prefix' => 'admin/profiler'
], function () {
Route::get('/', 'ProfilerController@index')->name('profiler.index');
Route::get('{httpLog}/queries', 'QueryController@index')->name('queries.index');
Route::get('/', 'ProfilerController@index')
->name('profiler.index');
Route::get('{httpLog}', 'RequestController@detail')
->name('request.detail');
Route::get('{httpLog}/queries', 'QueryController@index')
->name('queries.index');
});
});