mirror of https://github.com/flarum/flarum
Revamp bootstrapping process to use PSR-7 middleware
parent
334cebbf6f
commit
65c4a49ecf
42
index.php
42
index.php
|
@ -1,13 +1,43 @@
|
|||
<?php
|
||||
|
||||
use Psr\Http\Message\ResponseInterface as Response;
|
||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||
use Zend\Diactoros\Server;
|
||||
use Zend\Stratigility\Http\Response as ZendResponse;
|
||||
use Zend\Stratigility\MiddlewarePipe;
|
||||
|
||||
// Instantiate the application, register providers etc.
|
||||
$app = require __DIR__.'/system/bootstrap.php';
|
||||
|
||||
$kernel = $app->make('Illuminate\Contracts\Http\Kernel');
|
||||
// Build a middleware pipeline for Flarum
|
||||
$flarum = new MiddlewarePipe();
|
||||
$flarum->pipe($app->make('Flarum\Forum\Middleware\LoginWithCookie'));
|
||||
|
||||
$response = $kernel->handle(
|
||||
$request = Illuminate\Http\Request::capture()
|
||||
$api = new MiddlewarePipe();
|
||||
$api->pipe($app->make('Flarum\Api\Middleware\ReadJsonParameters'));
|
||||
$api->pipe($app->make('Flarum\Api\Middleware\LoginWithHeader'));
|
||||
|
||||
$admin = new MiddlewarePipe();
|
||||
$admin->pipe($app->make('Flarum\Admin\Middleware\LoginWithCookieAndCheckAdmin'));
|
||||
|
||||
$flarum->pipe('/api', $api);
|
||||
$flarum->pipe('/admin', $admin);
|
||||
$flarum->pipe(function(Request $request, Response $response, $next) use ($app) {
|
||||
/** @var Flarum\Http\Router $router */
|
||||
$router = $app->make('Flarum\Http\Router');
|
||||
|
||||
$response = new ZendResponse($router->dispatch($request));
|
||||
|
||||
return $next($request, $response);
|
||||
});
|
||||
|
||||
$server = Server::createServer(
|
||||
$flarum,
|
||||
$_SERVER,
|
||||
$_GET,
|
||||
$_POST,
|
||||
$_COOKIE,
|
||||
$_FILES
|
||||
);
|
||||
|
||||
$response->send();
|
||||
|
||||
$kernel->terminate($request, $response);
|
||||
$server->listen();
|
||||
|
|
|
@ -8,19 +8,26 @@ $app = new Illuminate\Foundation\Application(
|
|||
);
|
||||
$app->instance('path.public', __DIR__.'/..');
|
||||
|
||||
use Illuminate\Foundation\Http\Kernel as IlluminateHttpKernel;
|
||||
$middleware = [
|
||||
'Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode',
|
||||
'Illuminate\Cookie\Middleware\EncryptCookies',
|
||||
'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
|
||||
'Illuminate\Session\Middleware\StartSession',
|
||||
'Illuminate\View\Middleware\ShareErrorsFromSession',
|
||||
// 'App\Http\Middleware\VerifyCsrfToken',
|
||||
];
|
||||
|
||||
class HttpKernel extends IlluminateHttpKernel {
|
||||
protected $middleware = [
|
||||
'Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode',
|
||||
'Illuminate\Cookie\Middleware\EncryptCookies',
|
||||
'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
|
||||
'Illuminate\Session\Middleware\StartSession',
|
||||
'Illuminate\View\Middleware\ShareErrorsFromSession',
|
||||
// 'App\Http\Middleware\VerifyCsrfToken',
|
||||
];
|
||||
protected $routeMiddleware = [];
|
||||
}
|
||||
$bootstrappers = [
|
||||
'Illuminate\Foundation\Bootstrap\DetectEnvironment',
|
||||
'Illuminate\Foundation\Bootstrap\LoadConfiguration',
|
||||
'Illuminate\Foundation\Bootstrap\ConfigureLogging',
|
||||
//'Illuminate\Foundation\Bootstrap\HandleExceptions',
|
||||
'Illuminate\Foundation\Bootstrap\RegisterFacades',
|
||||
'Illuminate\Foundation\Bootstrap\RegisterProviders',
|
||||
'Illuminate\Foundation\Bootstrap\BootProviders',
|
||||
];
|
||||
|
||||
$app->bootstrapWith($bootstrappers);
|
||||
|
||||
use Illuminate\Foundation\Console\Kernel as IlluminateConsoleKernel;
|
||||
|
||||
|
|
|
@ -118,7 +118,7 @@ return [
|
|||
'Illuminate\Bus\BusServiceProvider',
|
||||
'Illuminate\Cache\CacheServiceProvider',
|
||||
'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
|
||||
'Illuminate\Routing\ControllerServiceProvider',
|
||||
//'Illuminate\Routing\ControllerServiceProvider',
|
||||
'Illuminate\Cookie\CookieServiceProvider',
|
||||
'Illuminate\Database\DatabaseServiceProvider',
|
||||
'Illuminate\Encryption\EncryptionServiceProvider',
|
||||
|
|
Loading…
Reference in New Issue