diff --git a/api.php b/api.php new file mode 100644 index 0000000..f55f7d6 --- /dev/null +++ b/api.php @@ -0,0 +1,31 @@ +register('Flarum\Api\ApiServiceProvider'); + +// Build a middleware pipeline for the API +$api = new MiddlewarePipe(); +$api->pipe($app->make('Flarum\Api\Middleware\ReadJsonParameters')); +$api->pipe($app->make('Flarum\Api\Middleware\LoginWithHeader')); + +$api->pipe('api.php', $app->make('Flarum\Http\RouterMiddleware', ['routes' => $app->make('flarum.api.routes')])); +$api->pipe(new \Franzl\Middleware\Whoops\Middleware()); + +$server = Server::createServer( + $api, + $_SERVER, + $_GET, + $_POST, + $_COOKIE, + $_FILES +); + +$server->listen(); diff --git a/index.php b/index.php index afb9224..ba78751 100644 --- a/index.php +++ b/index.php @@ -3,31 +3,26 @@ 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'; +// Set up everything we need for the frontend +$app->register('Flarum\Forum\ForumServiceProvider'); +$app->register('Flarum\Admin\AdminServiceProvider'); + // Build a middleware pipeline for Flarum $flarum = new MiddlewarePipe(); $flarum->pipe($app->make('Flarum\Forum\Middleware\LoginWithCookie')); - -$api = new MiddlewarePipe(); $flarum->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')); +$admin->pipe($app->make('Flarum\Http\RouterMiddleware', ['routes' => $app->make('flarum.admin.routes')])); -$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'); - - return new ZendResponse($router->dispatch($request)); -}); +$flarum->pipe('/admin.php', $admin); +$flarum->pipe('/index.php', $app->make('Flarum\Http\RouterMiddleware', ['routes' => $app->make('flarum.forum.routes')])); $server = Server::createServer( $flarum, diff --git a/system/config/app.php b/system/config/app.php index b718c24..ed54dd2 100644 --- a/system/config/app.php +++ b/system/config/app.php @@ -114,11 +114,9 @@ return [ * Laravel Framework Service Providers... */ 'Illuminate\Foundation\Providers\ArtisanServiceProvider', - // 'Illuminate\Auth\AuthServiceProvider', 'Illuminate\Bus\BusServiceProvider', 'Illuminate\Cache\CacheServiceProvider', 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider', - //'Illuminate\Routing\ControllerServiceProvider', 'Illuminate\Cookie\CookieServiceProvider', 'Illuminate\Database\DatabaseServiceProvider', 'Illuminate\Encryption\EncryptionServiceProvider', @@ -129,20 +127,15 @@ return [ 'Illuminate\Pagination\PaginationServiceProvider', 'Illuminate\Pipeline\PipelineServiceProvider', 'Illuminate\Queue\QueueServiceProvider', - 'Illuminate\Redis\RedisServiceProvider', - 'Illuminate\Auth\Passwords\PasswordResetServiceProvider', 'Illuminate\Session\SessionServiceProvider', 'Illuminate\Translation\TranslationServiceProvider', 'Illuminate\Validation\ValidationServiceProvider', 'Illuminate\View\ViewServiceProvider', - 'Flarum\Core\CoreServiceProvider', + 'Flarum\Core\CoreServiceProvider', 'Flarum\Support\Extensions\ExtensionsServiceProvider', - 'Flarum\Api\ApiServiceProvider', - 'Flarum\Forum\ForumServiceProvider', 'Flarum\Console\ConsoleServiceProvider', - 'Flarum\Admin\AdminServiceProvider', ],