namespace Shaarli\Render;
+use DatePeriod;
+use Shaarli\Feed\CachedPage;
+
/**
* Cache utilities
*/
/** @var string Cache directory */
protected $pageCacheDir;
- public function __construct(string $pageCacheDir)
+ /** @var bool */
+ protected $isLoggedIn;
+
+ public function __construct(string $pageCacheDir, bool $isLoggedIn)
{
$this->pageCacheDir = $pageCacheDir;
+ $this->isLoggedIn = $isLoggedIn;
}
/**
// Purge page cache shared by sessions.
$this->purgeCachedPages();
}
+
+ /**
+ * Get CachedPage instance for provided URL.
+ *
+ * @param string $pageUrl
+ * @param ?DatePeriod $validityPeriod Optionally specify a time limit on requested cache
+ *
+ * @return CachedPage
+ */
+ public function getCachePage(string $pageUrl, DatePeriod $validityPeriod = null): CachedPage
+ {
+ return new CachedPage(
+ $this->pageCacheDir,
+ $pageUrl,
+ false === $this->isLoggedIn,
+ $validityPeriod
+ );
+ }
}