Mercurial > SimpleWebPresenter
annotate cache_check.inc @ 32:7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
| author | Tom Fredrik "BFG" Klaussen <bfg@blenning.no> |
|---|---|
| date | Thu, 04 Oct 2012 19:46:11 +0200 |
| parents | 1ec0738a1623 |
| children |
| 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 |
|
32
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
2 class CacheTimeCheck |
|
14
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
6
diff
changeset
|
3 { |
|
32
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
4 private $newest; |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
5 private $files = array(); |
|
6
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
0
diff
changeset
|
6 |
|
32
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
7 function __construct($minTime = 0, $filename = False) |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
8 { |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
9 if ($filename) |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
10 array_push($this->files, $filename); |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
11 $this->newest = $minTime; |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
12 $this->cache_time(__FILE__); |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
13 } |
|
0
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
14 |
|
32
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
15 function CheckHttpModified() |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
16 { |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
17 if (DEBUG) |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
18 var_dump($_SERVER); |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
19 |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
20 $HTTP_IF_MODIFIED_SINCE=$_SERVER['HTTP_IF_MODIFIED_SINCE']; |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
21 $if_modified_since = preg_replace('/;.*$/', '', $HTTP_IF_MODIFIED_SINCE); |
|
0
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
22 |
|
32
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
23 $gmdate_mod = gmdate('D, d M Y H:i:s', $this->newest) . ' GMT'; |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
24 |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
25 if ($if_modified_since == $gmdate_mod) { |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
26 header("HTTP/1.0 304 Not Modified"); |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
27 exit; |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
28 } |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
29 header("Last-Modified: $gmdate_mod"); |
|
14
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
6
diff
changeset
|
30 } |
|
16
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
15
diff
changeset
|
31 |
|
32
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
32 function cache_time($path) |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
33 { |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
34 array_push($this->files, $path); |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
35 $mtime = filemtime($path); |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
36 if ($mtime > $this->newest) { |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
37 $this->newest = $mtime; |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
38 } |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
39 } |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
40 |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
41 function includeOnce($path) |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
42 { |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
43 $this->cache_time($path); |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
44 include_once($path); |
|
16
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
15
diff
changeset
|
45 } |
|
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
15
diff
changeset
|
46 } |
|
0
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
47 ?> |
