diff --git a/index.php b/index.php index b60314d..a44c2f7 100644 --- a/index.php +++ b/index.php @@ -1,13 +1,43 @@ 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(); diff --git a/system/bootstrap.php b/system/bootstrap.php index 5c1d828..40fd24b 100644 --- a/system/bootstrap.php +++ b/system/bootstrap.php @@ -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; diff --git a/system/config/app.php b/system/config/app.php index 4d54f63..b718c24 100644 --- a/system/config/app.php +++ b/system/config/app.php @@ -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',