Mercurial > SimpleWebPresenter
annotate CacheTimeCheck.inc @ 84:3a1e20a5b67a
Branc merge.
| author | Tom Fredrik "BFG" Klaussen <bfg@blenning.no> |
|---|---|
| date | Mon, 15 Oct 2012 16:52:50 +0200 |
| parents | dd4ddedca4c5 |
| children | d98e315308cd |
| rev | line source |
|---|---|
|
0
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
1 <?php |
| 52 | 2 $baseDir = dirname(__FILE__); |
| 3 | |
| 4 include_once 'common-functions.inc'; | |
|
69
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
68
diff
changeset
|
5 include_once 'FileCacheSet.inc'; |
|
68
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
6 $cache = ScriptIncludeCache::instance(__FILE__); |
|
69
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
68
diff
changeset
|
7 $cache->cache_time("${baseDir}/FileCacheSet.inc"); |
|
68
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
8 |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
9 /** |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
10 * CacheTimeCheck provides a set of functions to enable generating a |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
11 * correct time for the latest update for a given file. |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
12 * |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
13 * @author Tom Fredrik Blenning Klaussen |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
14 */ |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
15 class CacheTimeCheck extends FileCacheSet |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
16 { |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
17 function __construct($filename = False) |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
18 { |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
19 parent::__construct(); |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
20 if ($filename) |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
21 $this->cache_time($filename); |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
22 $this->cache_time(__FILE__); |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
23 } |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
24 |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
25 public function addParent($cache) |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
26 { |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
27 parent::addParent($cache); |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
28 } |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
29 |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
30 /** |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
31 * Checks if a HTTP_IF_MODIFIED_SINCE header is set, if this file is |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
32 * newer, set a Last-Modified header, otherwise abort with an 304 |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
33 * status code |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
34 */ |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
35 function CheckHttpModified() |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
36 { |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
37 if (DEBUG_LEVEL >= VERBOSITY_DEBUG) |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
38 var_dump($_SERVER); |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
39 |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
40 $gmdate_mod = gmdate('D, d M Y H:i:s', $this->getNewest()) . ' GMT'; |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
41 |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
42 if(array_key_exists('HTTP_IF_MODIFIED_SINCE', $_SERVER)) { |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
43 $HTTP_IF_MODIFIED_SINCE = $_SERVER['HTTP_IF_MODIFIED_SINCE']; |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
44 $if_modified_since = preg_replace('/;.*$/', '', $HTTP_IF_MODIFIED_SINCE); |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
45 |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
46 if (strtotime($if_modified_since) >= $this->getNewest()) { |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
47 header("HTTP/1.0 304 Not Modified"); |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
48 exit; |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
49 } |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
50 } |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
51 |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
52 header("Last-Modified: $gmdate_mod"); |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
53 } |
|
38
42533600214b
Rename cache_check.inc to CacheTimeCheck.inc.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
32
diff
changeset
|
54 |
|
48
c6d0892f81ff
Documentation.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
55 /** |
|
c6d0892f81ff
Documentation.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
56 * Convenience function to load a file, and add it to the cacheset |
|
c6d0892f81ff
Documentation.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
57 * |
|
c6d0892f81ff
Documentation.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
58 * @param $path path of the file |
|
c6d0892f81ff
Documentation.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
59 * @return the contents of the file |
|
c6d0892f81ff
Documentation.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
60 */ |
|
38
42533600214b
Rename cache_check.inc to CacheTimeCheck.inc.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
32
diff
changeset
|
61 function loadFile($path) |
|
42533600214b
Rename cache_check.inc to CacheTimeCheck.inc.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
32
diff
changeset
|
62 { |
|
42533600214b
Rename cache_check.inc to CacheTimeCheck.inc.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
32
diff
changeset
|
63 $this->cache_time($path); |
|
42533600214b
Rename cache_check.inc to CacheTimeCheck.inc.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
32
diff
changeset
|
64 return loadFile($path); |
|
42533600214b
Rename cache_check.inc to CacheTimeCheck.inc.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
32
diff
changeset
|
65 } |
|
16
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
15
diff
changeset
|
66 } |
|
50
2d0cda52f43f
Remove unused variable.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
48
diff
changeset
|
67 ?> |
