use Shaarli\Bookmark\BookmarkFileService;
use Shaarli\Bookmark\BookmarkServiceInterface;
use Shaarli\Config\ConfigManager;
+use Shaarli\Feed\FeedBuilder;
+use Shaarli\Formatter\FormatterFactory;
use Shaarli\History;
use Shaarli\Plugin\PluginManager;
use Shaarli\Render\PageBuilder;
+use Shaarli\Render\PageCacheManager;
use Shaarli\Security\LoginManager;
use Shaarli\Security\SessionManager;
/** @var LoginManager */
protected $login;
- public function __construct(ConfigManager $conf, SessionManager $session, LoginManager $login)
- {
+ /** @var string */
+ protected $webPath;
+
+ public function __construct(
+ ConfigManager $conf,
+ SessionManager $session,
+ LoginManager $login,
+ string $webPath
+ ) {
$this->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);
};
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'),
+ $container->loginManager->isLoggedIn()
+ );
+ };
+
+ $container['feedBuilder'] = function (ShaarliContainer $container): FeedBuilder {
+ return new FeedBuilder(
+ $container->bookmarkService,
+ $container->formatterFactory->getFormatter(),
+ $container->environment,
+ $container->loginManager->isLoggedIn()
+ );
+ };
+
return $container;
}
}