mirror of
https://github.com/flarum/framework.git
synced 2025-03-02 15:45:41 +08:00
Use container events as an alternative to the ConfigureMiddleware event (#1462)
By moving the DispatchRoute middleware into an `afterResolving` callback, this will allow a new Middleware extender to add a `resolving` callback to the appropriate container binding, removing the need for the ConfigureMiddleware event. The ConfigureMiddleware event has been deprecated and should be removed in beta 9.
This commit is contained in:
parent
aae8aa4a51
commit
5d44b6f259
@ -11,18 +11,11 @@
|
||||
|
||||
namespace Flarum\Admin;
|
||||
|
||||
use Flarum\Admin\Middleware\RequireAdministrateAbility;
|
||||
use Flarum\Event\ConfigureMiddleware;
|
||||
use Flarum\Foundation\AbstractServiceProvider;
|
||||
use Flarum\Foundation\Application;
|
||||
use Flarum\Frontend\RecompileFrontendAssets;
|
||||
use Flarum\Http\Middleware\AuthenticateWithSession;
|
||||
use Flarum\Http\Middleware\DispatchRoute;
|
||||
use Flarum\Http\Middleware\HandleErrorsWithView;
|
||||
use Flarum\Http\Middleware\HandleErrorsWithWhoops;
|
||||
use Flarum\Http\Middleware\ParseJsonBody;
|
||||
use Flarum\Http\Middleware\RememberFromCookie;
|
||||
use Flarum\Http\Middleware\SetLocale;
|
||||
use Flarum\Http\Middleware\StartSession;
|
||||
use Flarum\Http\Middleware as HttpMiddleware;
|
||||
use Flarum\Http\RouteCollection;
|
||||
use Flarum\Http\RouteHandlerFactory;
|
||||
use Flarum\Http\UrlGenerator;
|
||||
@ -43,30 +36,32 @@ class AdminServiceProvider extends AbstractServiceProvider
|
||||
return new RouteCollection;
|
||||
});
|
||||
|
||||
$this->app->singleton('flarum.admin.middleware', function ($app) {
|
||||
$this->app->singleton('flarum.admin.middleware', function (Application $app) {
|
||||
$pipe = new MiddlewarePipe;
|
||||
|
||||
// All requests should first be piped through our global error handler
|
||||
if ($app->inDebugMode()) {
|
||||
$pipe->pipe($app->make(HandleErrorsWithWhoops::class));
|
||||
$pipe->pipe($app->make(HttpMiddleware\HandleErrorsWithWhoops::class));
|
||||
} else {
|
||||
$pipe->pipe($app->make(HandleErrorsWithView::class));
|
||||
$pipe->pipe($app->make(HttpMiddleware\HandleErrorsWithView::class));
|
||||
}
|
||||
|
||||
$pipe->pipe($app->make(ParseJsonBody::class));
|
||||
$pipe->pipe($app->make(StartSession::class));
|
||||
$pipe->pipe($app->make(RememberFromCookie::class));
|
||||
$pipe->pipe($app->make(AuthenticateWithSession::class));
|
||||
$pipe->pipe($app->make(SetLocale::class));
|
||||
$pipe->pipe($app->make(RequireAdministrateAbility::class));
|
||||
$pipe->pipe($app->make(HttpMiddleware\ParseJsonBody::class));
|
||||
$pipe->pipe($app->make(HttpMiddleware\StartSession::class));
|
||||
$pipe->pipe($app->make(HttpMiddleware\RememberFromCookie::class));
|
||||
$pipe->pipe($app->make(HttpMiddleware\AuthenticateWithSession::class));
|
||||
$pipe->pipe($app->make(HttpMiddleware\SetLocale::class));
|
||||
$pipe->pipe($app->make(Middleware\RequireAdministrateAbility::class));
|
||||
|
||||
event(new ConfigureMiddleware($pipe, 'admin'));
|
||||
|
||||
$pipe->pipe(new DispatchRoute($app->make('flarum.admin.routes')));
|
||||
|
||||
return $pipe;
|
||||
});
|
||||
|
||||
$this->app->afterResolving('flarum.admin.middleware', function (MiddlewarePipe $pipe) {
|
||||
$pipe->pipe(new HttpMiddleware\DispatchRoute($this->app->make('flarum.admin.routes')));
|
||||
});
|
||||
|
||||
$this->app->bind('flarum.admin.assets', function () {
|
||||
return $this->app->make('flarum.frontend.assets.defaults')('admin');
|
||||
});
|
||||
|
@ -12,8 +12,6 @@
|
||||
namespace Flarum\Api;
|
||||
|
||||
use Flarum\Api\Controller\AbstractSerializeController;
|
||||
use Flarum\Api\Middleware\FakeHttpMethods;
|
||||
use Flarum\Api\Middleware\HandleErrors;
|
||||
use Flarum\Api\Serializer\AbstractSerializer;
|
||||
use Flarum\Api\Serializer\BasicDiscussionSerializer;
|
||||
use Flarum\Api\Serializer\NotificationSerializer;
|
||||
@ -21,13 +19,8 @@ use Flarum\Event\ConfigureApiRoutes;
|
||||
use Flarum\Event\ConfigureMiddleware;
|
||||
use Flarum\Event\ConfigureNotificationTypes;
|
||||
use Flarum\Foundation\AbstractServiceProvider;
|
||||
use Flarum\Http\Middleware\AuthenticateWithHeader;
|
||||
use Flarum\Http\Middleware\AuthenticateWithSession;
|
||||
use Flarum\Http\Middleware\DispatchRoute;
|
||||
use Flarum\Http\Middleware\ParseJsonBody;
|
||||
use Flarum\Http\Middleware\RememberFromCookie;
|
||||
use Flarum\Http\Middleware\SetLocale;
|
||||
use Flarum\Http\Middleware\StartSession;
|
||||
use Flarum\Foundation\Application;
|
||||
use Flarum\Http\Middleware as HttpMiddleware;
|
||||
use Flarum\Http\RouteCollection;
|
||||
use Flarum\Http\RouteHandlerFactory;
|
||||
use Flarum\Http\UrlGenerator;
|
||||
@ -51,26 +44,28 @@ class ApiServiceProvider extends AbstractServiceProvider
|
||||
return new RouteCollection;
|
||||
});
|
||||
|
||||
$this->app->singleton('flarum.api.middleware', function ($app) {
|
||||
$this->app->singleton('flarum.api.middleware', function (Application $app) {
|
||||
$pipe = new MiddlewarePipe;
|
||||
|
||||
$pipe->pipe($app->make(HandleErrors::class));
|
||||
$pipe->pipe($app->make(Middleware\HandleErrors::class));
|
||||
|
||||
$pipe->pipe($app->make(ParseJsonBody::class));
|
||||
$pipe->pipe($app->make(FakeHttpMethods::class));
|
||||
$pipe->pipe($app->make(StartSession::class));
|
||||
$pipe->pipe($app->make(RememberFromCookie::class));
|
||||
$pipe->pipe($app->make(AuthenticateWithSession::class));
|
||||
$pipe->pipe($app->make(AuthenticateWithHeader::class));
|
||||
$pipe->pipe($app->make(SetLocale::class));
|
||||
$pipe->pipe($app->make(HttpMiddleware\ParseJsonBody::class));
|
||||
$pipe->pipe($app->make(Middleware\FakeHttpMethods::class));
|
||||
$pipe->pipe($app->make(HttpMiddleware\StartSession::class));
|
||||
$pipe->pipe($app->make(HttpMiddleware\RememberFromCookie::class));
|
||||
$pipe->pipe($app->make(HttpMiddleware\AuthenticateWithSession::class));
|
||||
$pipe->pipe($app->make(HttpMiddleware\AuthenticateWithHeader::class));
|
||||
$pipe->pipe($app->make(HttpMiddleware\SetLocale::class));
|
||||
|
||||
event(new ConfigureMiddleware($pipe, 'api'));
|
||||
|
||||
$pipe->pipe(new DispatchRoute($app->make('flarum.api.routes')));
|
||||
|
||||
return $pipe;
|
||||
});
|
||||
|
||||
$this->app->afterResolving('flarum.api.middleware', function (MiddlewarePipe $pipe) {
|
||||
$pipe->pipe(new HttpMiddleware\DispatchRoute($this->app->make('flarum.api.routes')));
|
||||
});
|
||||
|
||||
$this->app->singleton(ErrorHandler::class, function () {
|
||||
$handler = new ErrorHandler;
|
||||
|
||||
|
@ -14,16 +14,9 @@ namespace Flarum\Forum;
|
||||
use Flarum\Event\ConfigureForumRoutes;
|
||||
use Flarum\Event\ConfigureMiddleware;
|
||||
use Flarum\Foundation\AbstractServiceProvider;
|
||||
use Flarum\Http\Middleware\AuthenticateWithSession;
|
||||
use Flarum\Http\Middleware\CollectGarbage;
|
||||
use Flarum\Http\Middleware\DispatchRoute;
|
||||
use Flarum\Http\Middleware\HandleErrorsWithView;
|
||||
use Flarum\Http\Middleware\HandleErrorsWithWhoops;
|
||||
use Flarum\Http\Middleware\ParseJsonBody;
|
||||
use Flarum\Http\Middleware\RememberFromCookie;
|
||||
use Flarum\Http\Middleware\SetLocale;
|
||||
use Flarum\Http\Middleware\ShareErrorsFromSession;
|
||||
use Flarum\Http\Middleware\StartSession;
|
||||
use Flarum\Foundation\Application;
|
||||
use Flarum\Frontend\RecompileFrontendAssets;
|
||||
use Flarum\Http\Middleware as HttpMiddleware;
|
||||
use Flarum\Http\RouteCollection;
|
||||
use Flarum\Http\RouteHandlerFactory;
|
||||
use Flarum\Http\UrlGenerator;
|
||||
@ -46,31 +39,33 @@ class ForumServiceProvider extends AbstractServiceProvider
|
||||
return new RouteCollection;
|
||||
});
|
||||
|
||||
$this->app->singleton('flarum.forum.middleware', function ($app) {
|
||||
$this->app->singleton('flarum.forum.middleware', function (Application $app) {
|
||||
$pipe = new MiddlewarePipe;
|
||||
|
||||
// All requests should first be piped through our global error handler
|
||||
if ($app->inDebugMode()) {
|
||||
$pipe->pipe($app->make(HandleErrorsWithWhoops::class));
|
||||
$pipe->pipe($app->make(HttpMiddleware\HandleErrorsWithWhoops::class));
|
||||
} else {
|
||||
$pipe->pipe($app->make(HandleErrorsWithView::class));
|
||||
$pipe->pipe($app->make(HttpMiddleware\HandleErrorsWithView::class));
|
||||
}
|
||||
|
||||
$pipe->pipe($app->make(ParseJsonBody::class));
|
||||
$pipe->pipe($app->make(CollectGarbage::class));
|
||||
$pipe->pipe($app->make(StartSession::class));
|
||||
$pipe->pipe($app->make(RememberFromCookie::class));
|
||||
$pipe->pipe($app->make(AuthenticateWithSession::class));
|
||||
$pipe->pipe($app->make(SetLocale::class));
|
||||
$pipe->pipe($app->make(ShareErrorsFromSession::class));
|
||||
$pipe->pipe($app->make(HttpMiddleware\ParseJsonBody::class));
|
||||
$pipe->pipe($app->make(HttpMiddleware\CollectGarbage::class));
|
||||
$pipe->pipe($app->make(HttpMiddleware\StartSession::class));
|
||||
$pipe->pipe($app->make(HttpMiddleware\RememberFromCookie::class));
|
||||
$pipe->pipe($app->make(HttpMiddleware\AuthenticateWithSession::class));
|
||||
$pipe->pipe($app->make(HttpMiddleware\SetLocale::class));
|
||||
$pipe->pipe($app->make(HttpMiddleware\ShareErrorsFromSession::class));
|
||||
|
||||
event(new ConfigureMiddleware($pipe, 'forum'));
|
||||
|
||||
$pipe->pipe(new DispatchRoute($app->make('flarum.forum.routes')));
|
||||
|
||||
return $pipe;
|
||||
});
|
||||
|
||||
$this->app->afterResolving('flarum.forum.middleware', function (MiddlewarePipe $pipe) {
|
||||
$pipe->pipe(new HttpMiddleware\DispatchRoute($this->app->make('flarum.forum.routes')));
|
||||
});
|
||||
|
||||
$this->app->bind('flarum.forum.assets', function () {
|
||||
$assets = $this->app->make('flarum.frontend.assets.defaults')('forum');
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user