diff --git a/index.php b/index.php index f936cd1a3a..8ba10df263 100644 --- a/index.php +++ b/index.php @@ -18,14 +18,6 @@ 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); - -\Friendica\Core\Logger\Handler\ErrorHandler::register($dice->create(\Psr\Log\LoggerInterface::class)); $a = \Friendica\App::fromDice($dice); diff --git a/src/App.php b/src/App.php index bc3efde176..e3a9ac0936 100644 --- a/src/App.php +++ b/src/App.php @@ -121,6 +121,8 @@ class App public function processRequest(ServerRequestInterface $request, float $start_time): void { + $this->setupContainerForRunningFrontend($request); + $this->requestId = $this->container->create(Request::class)->getRequestId(); $this->auth = $this->container->create(Authentication::class); $this->config = $this->container->create(IManageConfigValues::class); @@ -152,6 +154,18 @@ 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(\Friendica\App\Mode::class, ['call' => [['determineRunMode', [false, $request->getServerParams()], Dice::CHAIN_CALL]]]); + + \Friendica\DI::init($this->container); + + \Friendica\Core\Logger\Handler\ErrorHandler::register($this->container->create(\Psr\Log\LoggerInterface::class)); + } + /** * Load the whole app instance */