conf = $conf; $this->session = $session; $this->login = $login; $this->webPath = $webPath; } public function build(): ShaarliContainer { $container = new ShaarliContainer(); $container['conf'] = $this->conf; $container['sessionManager'] = $this->session; $container['loginManager'] = $this->login; $container['webPath'] = $this->webPath; $container['plugins'] = function (ShaarliContainer $container): PluginManager { return new PluginManager($container->conf); }; $container['history'] = function (ShaarliContainer $container): History { return new History($container->conf->get('resource.history')); }; $container['bookmarkService'] = function (ShaarliContainer $container): BookmarkServiceInterface { return new BookmarkFileService( $container->conf, $container->history, $container->loginManager->isLoggedIn() ); }; $container['pageBuilder'] = function (ShaarliContainer $container): PageBuilder { return new PageBuilder( $container->conf, $container->sessionManager->getSession(), $container->bookmarkService, $container->sessionManager->generateToken(), $container->loginManager->isLoggedIn() ); }; $container['pluginManager'] = function (ShaarliContainer $container): PluginManager { return new PluginManager($container->conf); }; $container['formatterFactory'] = function (ShaarliContainer $container): FormatterFactory { return new FormatterFactory($container->conf, $container->loginManager->isLoggedIn()); }; $container['pageCacheManager'] = function (ShaarliContainer $container): PageCacheManager { return new PageCacheManager($container->conf->get('resource.page_cache')); }; return $container; } }