FEATURE: move widget and template dir installation into middleware, optimize middleware groups

This commit is contained in:
Michal Kváček
2016-09-25 12:42:26 +02:00
parent d7b60690b2
commit 8f4e6268a4
12 changed files with 184 additions and 123 deletions
+18 -8
View File
@@ -2,8 +2,13 @@
namespace App\Http;
use App\Http\Middleware\TemplatePathInstaller;
use App\Http\Middleware\WidgetInstaller;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
use Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode;
use Illuminate\Routing\Middleware\ThrottleRequests;
use Illuminate\Session\Middleware\StartSession;
use Illuminate\View\Middleware\ShareErrorsFromSession;
use Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRedirectFilter;
use Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRoutes;
use Mcamara\LaravelLocalization\Middleware\LocaleSessionRedirect;
@@ -18,7 +23,10 @@ class Kernel extends HttpKernel
* @var array
*/
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
Middleware\EncryptCookies::class,
StartSession::class,
ShareErrorsFromSession::class,
Middleware\VerifyCsrfToken::class
];
/**
* The application's route middleware groups.
@@ -26,14 +34,16 @@ class Kernel extends HttpKernel
* @var array
*/
protected $middlewareGroups = [
'web' => [
Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
Middleware\VerifyCsrfToken::class,
'web' => [
CheckForMaintenanceMode::class,
],
'api' => [
'admin' => [
Middleware\Authenticate::class,
Middleware\AdminMenuRegistrator::class,
TemplatePathInstaller::class,
WidgetInstaller::class,
],
'api' => [
'throttle:60,1',
],
];
@@ -0,0 +1,31 @@
<?php
namespace App\Http\Middleware;
use App\Handlers\Registrators\TemplateRegistrator;
use Closure;
use Illuminate\Support\Facades\App;
class TemplatePathInstaller
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
*
* @return mixed
*/
public function handle($request, Closure $next)
{
/**
* @var $registator TemplateRegistrator
*/
$registator = App::make('registerTemplateDir');
// install registered widgets
$registator->saveTemplates();
return $next($request);
}
}
+30
View File
@@ -0,0 +1,30 @@
<?php
namespace App\Http\Middleware;
use App\Handlers\Registrators\WidgetRegistrator;
use Closure;
use Illuminate\Support\Facades\App;
class WidgetInstaller
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
/**
* @var $registator WidgetRegistrator
*/
$registator = App::make('registerWidget');
// install registered widgets
$registator->installWidgets();
return $next($request);
}
}
+1 -1
View File
@@ -19,7 +19,7 @@ Route::group([
* This route group serves to handle request in admin
*/
Route::group([
'middleware' => ['web', 'auth', 'adminMenu'],
'middleware' => ['admin'],
'namespace' => 'Admin',
'prefix' => 'admin'
], function () {