conf = $conf; $this->session = $session; $this->login = $login; $this->cookieManager = $cookieManager; $this->pluginManager = $pluginManager; $this->logger = $logger; } public function build(): ShaarliContainer { $container = new ShaarliContainer(); $container['conf'] = $this->conf; $container['sessionManager'] = $this->session; $container['cookieManager'] = $this->cookieManager; $container['loginManager'] = $this->login; $container['pluginManager'] = $this->pluginManager; $container['logger'] = $this->logger; $container['basePath'] = $this->basePath; $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->pluginManager, $container->history, new FlockMutex(fopen(SHAARLI_MUTEX_FILE, 'r'), 2), $container->loginManager->isLoggedIn() ); }; $container['metadataRetriever'] = function (ShaarliContainer $container): MetadataRetriever { return new MetadataRetriever($container->conf, $container->httpAccess); }; $container['pageBuilder'] = function (ShaarliContainer $container): PageBuilder { return new PageBuilder( $container->conf, $container->sessionManager->getSession(), $container->logger, $container->bookmarkService, $container->sessionManager->generateToken(), $container->loginManager->isLoggedIn() ); }; $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'), $container->loginManager->isLoggedIn() ); }; $container['feedBuilder'] = function (ShaarliContainer $container): FeedBuilder { return new FeedBuilder( $container->bookmarkService, $container->formatterFactory->getFormatter(), $container->environment, $container->loginManager->isLoggedIn() ); }; $container['thumbnailer'] = function (ShaarliContainer $container): Thumbnailer { return new Thumbnailer($container->conf); }; $container['httpAccess'] = function (): HttpAccess { return new HttpAccess(); }; $container['netscapeBookmarkUtils'] = function (ShaarliContainer $container): NetscapeBookmarkUtils { return new NetscapeBookmarkUtils($container->bookmarkService, $container->conf, $container->history); }; $container['updater'] = function (ShaarliContainer $container): Updater { return new Updater( UpdaterUtils::readUpdatesFile($container->conf->get('resource.updates')), $container->bookmarkService, $container->conf, $container->loginManager->isLoggedIn() ); }; $container['notFoundHandler'] = function (ShaarliContainer $container): ErrorNotFoundController { return new ErrorNotFoundController($container); }; $container['errorHandler'] = function (ShaarliContainer $container): ErrorController { return new ErrorController($container); }; $container['phpErrorHandler'] = function (ShaarliContainer $container): ErrorController { return new ErrorController($container); }; return $container; } }