Split API and frontend controllers

pull/9/head
Franz Liedke 2015-06-17 02:00:20 +02:00
parent b639c45526
commit f521f6640b
3 changed files with 39 additions and 20 deletions

31
api.php Normal file
View File

@ -0,0 +1,31 @@
<?php
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Zend\Diactoros\Server;
use Zend\Stratigility\MiddlewarePipe;
// Instantiate the application, register providers etc.
$app = require __DIR__.'/system/bootstrap.php';
// Set up everything we need for the API
$app->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();

View File

@ -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,

View File

@ -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',
],