diff --git a/index.php b/index.php index f936cd1a3a..9ea262c5e7 100644 --- a/index.php +++ b/index.php @@ -18,15 +18,7 @@ require __DIR__ . '/vendor/autoload.php'; $request = \GuzzleHttp\Psr7\ServerRequest::fromGlobals(); $dice = (new Dice())->addRules(include __DIR__ . '/static/dependencies.config.php'); -/** @var \Friendica\Core\Addon\Capability\ICanLoadAddons $addonLoader */ -$addonLoader = $dice->create(\Friendica\Core\Addon\Capability\ICanLoadAddons::class); -$dice = $dice->addRules($addonLoader->getActiveAddonConfig('dependencies')); -$dice = $dice->addRule(Friendica\App\Mode::class, ['call' => [['determineRunMode', [false, $request->getServerParams()], Dice::CHAIN_CALL]]]); -\Friendica\DI::init($dice); +$app = \Friendica\App::fromDice($dice); -\Friendica\Core\Logger\Handler\ErrorHandler::register($dice->create(\Psr\Log\LoggerInterface::class)); - -$a = \Friendica\App::fromDice($dice); - -$a->processRequest($request, $start_time); +$app->processRequest($request, $start_time); diff --git a/src/App.php b/src/App.php index bc3efde176..2c236390d1 100644 --- a/src/App.php +++ b/src/App.php @@ -121,6 +121,10 @@ class App public function processRequest(ServerRequestInterface $request, float $start_time): void { + $this->setupContainerForRunningFrontend($request); + + $this->registerErrorHandler(); + $this->requestId = $this->container->create(Request::class)->getRequestId(); $this->auth = $this->container->create(Authentication::class); $this->config = $this->container->create(IManageConfigValues::class); @@ -152,6 +156,26 @@ class App ); } + private function setupContainerForRunningFrontend(ServerRequestInterface $request): void + { + /** @var \Friendica\Core\Addon\Capability\ICanLoadAddons $addonLoader */ + $addonLoader = $this->container->create(\Friendica\Core\Addon\Capability\ICanLoadAddons::class); + + $this->container = $this->container->addRules($addonLoader->getActiveAddonConfig('dependencies')); + $this->container = $this->container->addRule(Mode::class, [ + 'call' => [ + ['determineRunMode', [false, $request->getServerParams()], Dice::CHAIN_CALL], + ], + ]); + + \Friendica\DI::init($this->container); + } + + private function registerErrorHandler(): void + { + \Friendica\Core\Logger\Handler\ErrorHandler::register($this->container->create(LoggerInterface::class)); + } + /** * Load the whole app instance */