Boot Flarum app in Server classes

This is in preparation for fixing #1421 - it allows us to
encapsulate the exception handling in the server classes, so that
we can keep the skeleton (flarum/flarum) lean.
This commit is contained in:
Franz Liedke 2018-09-21 23:30:14 +02:00
parent 5fa9e1a8a2
commit d35532b744
2 changed files with 14 additions and 9 deletions

View File

@ -13,23 +13,26 @@ namespace Flarum\Console;
use Flarum\Console\Event\Configuring;
use Flarum\Foundation\Application;
use Flarum\Foundation\SiteInterface;
use Illuminate\Contracts\Events\Dispatcher;
use Symfony\Component\Console\Application as ConsoleApplication;
class Server
{
protected $commands;
private $site;
public function __construct(array $commands)
public function __construct(SiteInterface $site)
{
$this->commands = $commands;
$this->site = $site;
}
public function listen()
{
$app = $this->site->bootApp();
$console = new ConsoleApplication('Flarum', Application::VERSION);
foreach ($this->commands as $command) {
foreach ($app->getConsoleCommands() as $command) {
$console->add($command);
}

View File

@ -11,7 +11,7 @@
namespace Flarum\Http;
use Psr\Http\Server\RequestHandlerInterface;
use Flarum\Foundation\SiteInterface;
use Throwable;
use Zend\Diactoros\Response;
use Zend\Diactoros\ServerRequest;
@ -22,17 +22,19 @@ use Zend\Stratigility\Middleware\ErrorResponseGenerator;
class Server
{
protected $requestHandler;
private $site;
public function __construct(RequestHandlerInterface $requestHandler)
public function __construct(SiteInterface $site)
{
$this->requestHandler = $requestHandler;
$this->site = $site;
}
public function listen()
{
$app = $this->site->bootApp();
$runner = new RequestHandlerRunner(
$this->requestHandler,
$app->getRequestHandler(),
new SapiEmitter,
[ServerRequestFactory::class, 'fromGlobals'],
function (Throwable $e) {