diff --git a/modules/Profiler/Config/config.php b/modules/Profiler/Config/config.php new file mode 100644 index 00000000..cbc4324d --- /dev/null +++ b/modules/Profiler/Config/config.php @@ -0,0 +1,12 @@ + 'Profiler', + 'translatedName' => 'profiler::module.name', + 'translatedDescription' => 'profiler::module.description', + 'alias' => 'profiler', + 'handler' => \Modules\Blog\Article\Handlers\Article::class, + 'providers' => [\Modules\Blog\Article\Providers\ArticleServiceProvider::class], + 'files' => ['start.php'], + 'order' => 0, +]; \ No newline at end of file diff --git a/modules/Profiler/Database/Migrations/.gitkeep b/modules/Profiler/Database/Migrations/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/modules/Profiler/Database/Migrations/2017_02_22_014824_create_queries_log_table.php b/modules/Profiler/Database/Migrations/2017_02_22_014824_create_queries_log_table.php new file mode 100644 index 00000000..754e1866 --- /dev/null +++ b/modules/Profiler/Database/Migrations/2017_02_22_014824_create_queries_log_table.php @@ -0,0 +1,33 @@ +increments('id'); + $table->timestamps(); + $table->text('query'); + $table->text('bindings'); + $table->double('time'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('queries_log'); + } +} diff --git a/modules/Profiler/Database/Migrations/2017_02_22_021253_create_http_log_table.php b/modules/Profiler/Database/Migrations/2017_02_22_021253_create_http_log_table.php new file mode 100644 index 00000000..77b44cc4 --- /dev/null +++ b/modules/Profiler/Database/Migrations/2017_02_22_021253_create_http_log_table.php @@ -0,0 +1,35 @@ +increments('id'); + $table->timestamps(); + $table->string('method'); + $table->text('url'); + $table->double('time'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('http_log'); + } + +} diff --git a/modules/Profiler/Database/Seeders/.gitkeep b/modules/Profiler/Database/Seeders/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/modules/Profiler/Database/Seeders/ProfilerDatabaseSeeder.php b/modules/Profiler/Database/Seeders/ProfilerDatabaseSeeder.php new file mode 100644 index 00000000..b618393b --- /dev/null +++ b/modules/Profiler/Database/Seeders/ProfilerDatabaseSeeder.php @@ -0,0 +1,20 @@ +call("OthersTableSeeder"); + } + +} \ No newline at end of file diff --git a/modules/Profiler/Entities/HttpLog.php b/modules/Profiler/Entities/HttpLog.php new file mode 100644 index 00000000..6640d90a --- /dev/null +++ b/modules/Profiler/Entities/HttpLog.php @@ -0,0 +1,14 @@ + 'array' + ]; +} \ No newline at end of file diff --git a/modules/Profiler/Http/Controllers/.gitkeep b/modules/Profiler/Http/Controllers/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/modules/Profiler/Http/Controllers/ProfilerController.php b/modules/Profiler/Http/Controllers/ProfilerController.php new file mode 100644 index 00000000..75768f6e --- /dev/null +++ b/modules/Profiler/Http/Controllers/ProfilerController.php @@ -0,0 +1,12 @@ + 'web', 'prefix' => 'profiler', 'namespace' => 'Modules\Profiler\Http\Controllers'], function() +{ + Route::get('/', 'ProfilerController@index'); +}); \ No newline at end of file diff --git a/modules/Profiler/Middleware/Profiler.php b/modules/Profiler/Middleware/Profiler.php new file mode 100644 index 00000000..50bf958a --- /dev/null +++ b/modules/Profiler/Middleware/Profiler.php @@ -0,0 +1,43 @@ +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'] + ]); + } + } +} \ No newline at end of file diff --git a/modules/Profiler/Providers/ProfilerEventServiceProvider.php b/modules/Profiler/Providers/ProfilerEventServiceProvider.php new file mode 100644 index 00000000..707b75ce --- /dev/null +++ b/modules/Profiler/Providers/ProfilerEventServiceProvider.php @@ -0,0 +1,8 @@ +alias = 'profiler'; + } + + + /** + * Boot the application events. + * + * @return void + */ + public function boot() + { + parent::boot(); + + $this->app->register(ProfilerEventServiceProvider::class); + } + + public function register() + { + parent::register(); + + $this->app['router']->prependMiddlewareToGroup('web', Profiler::class); +// $this->app['router']->prependMiddlewareToGroup('admin', Profiler::class); + } + + + protected function setModulePath() + { + $this->path = __DIR__; + } +} \ No newline at end of file diff --git a/modules/Profiler/Repositories/.gitkeep b/modules/Profiler/Repositories/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/modules/Profiler/Resources/lang/.gitkeep b/modules/Profiler/Resources/lang/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/modules/Profiler/Resources/views/.gitkeep b/modules/Profiler/Resources/views/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/modules/Profiler/Resources/views/index.blade.php b/modules/Profiler/Resources/views/index.blade.php new file mode 100644 index 00000000..0b3a478a --- /dev/null +++ b/modules/Profiler/Resources/views/index.blade.php @@ -0,0 +1,11 @@ +@extends('profiler::layouts.master') + +@section('content') + +
+ This view is loaded from module: {!! config('profiler.name') !!} +
+ +@stop \ No newline at end of file diff --git a/modules/Profiler/Resources/views/layouts/master.blade.php b/modules/Profiler/Resources/views/layouts/master.blade.php new file mode 100644 index 00000000..6f9601eb --- /dev/null +++ b/modules/Profiler/Resources/views/layouts/master.blade.php @@ -0,0 +1,12 @@ + + + + + + +