]>
git.immae.eu Git - github/shaarli/Shaarli.git/blob - application/feed/CachedPage.php
3 namespace Shaarli\Feed
;
6 * Simple cache system, mainly for the RSS/ATOM feeds
10 // Directory containing page caches
13 // Should this URL be cached (boolean)?
14 private $shouldBeCached;
16 // Name of the cache file for this URL
20 * Creates a new CachedPage
22 * @param string $cacheDir page cache directory
23 * @param string $url page URL
24 * @param bool $shouldBeCached whether this page needs to be cached
26 public function __construct($cacheDir, $url, $shouldBeCached)
28 // TODO: check write access to the cache directory
29 $this->cacheDir
= $cacheDir;
30 $this->filename
= $this->cacheDir
. '/' . sha1($url) . '.cache';
31 $this->shouldBeCached
= $shouldBeCached;
35 * Returns the cached version of a page, if it exists and should be cached
37 * @return string a cached version of the page if it exists, null otherwise
39 public function cachedVersion()
41 if (!$this->shouldBeCached
) {
44 if (is_file($this->filename
)) {
45 return file_get_contents($this->filename
);
51 * Puts a page in the cache
53 * @param string $pageContent XML content to cache
55 public function cache($pageContent)
57 if (!$this->shouldBeCached
) {
60 file_put_contents($this->filename
, $pageContent);