Mercurial > SimpleWebPresenter
annotate CacheTimeCheck.inc @ 41:2a3ff56697db
Don't set values if they are empty in URL.
| author | Tom Fredrik "BFG" Klaussen <bfg@blenning.no> |
|---|---|
| date | Fri, 05 Oct 2012 00:48:33 +0200 |
| parents | fbbb82ced6de |
| children | 66382989353f |
| 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(); |
|
39
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
6 private static $myInstance = 0; |
|
6
6c0162497d56
Improved error reporting, and support for multilevel params.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
0
diff
changeset
|
7 |
|
39
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
8 private function __construct($filename = False) |
|
32
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
9 { |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
10 if ($filename) |
|
39
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
11 $this->cache_time($filename); |
|
32
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 |
|
39
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
15 function instance($filename = False) |
|
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
16 { |
|
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
17 if (! self::$myInstance) |
|
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
18 self::$myInstance = new self($filename); |
|
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
19 elseif ($filename) |
|
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
20 self::$myInstance->cache_time($filename); |
|
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
21 return self::$myInstance; |
|
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
22 } |
|
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
23 |
|
32
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
24 function CheckHttpModified() |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
25 { |
|
39
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
26 if (DEBUG_LEVEL >= VERBOSITY_DEBUG) |
|
32
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
27 var_dump($_SERVER); |
|
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 $gmdate_mod = gmdate('D, d M Y H:i:s', $this->newest) . ' GMT'; |
|
40
fbbb82ced6de
Fixes for CacheTimeCheck->includeOnce paths.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
39
diff
changeset
|
30 |
|
39
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
31 if(array_key_exists('HTTP_IF_MODIFIED_SINCE', $_SERVER)) { |
|
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
32 $HTTP_IF_MODIFIED_SINCE = $_SERVER['HTTP_IF_MODIFIED_SINCE']; |
|
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
33 $if_modified_since = preg_replace('/;.*$/', '', $HTTP_IF_MODIFIED_SINCE); |
|
32
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
34 |
|
39
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
35 if (strtotime($if_modified_since) >= $this->newest) { |
|
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
36 header("HTTP/1.0 304 Not Modified"); |
|
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
37 exit; |
|
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
38 } |
|
32
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
39 } |
|
39
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
40 |
|
32
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
41 header("Last-Modified: $gmdate_mod"); |
|
14
91ee5f49907e
Correct caching.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
6
diff
changeset
|
42 } |
|
16
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
15
diff
changeset
|
43 |
|
40
fbbb82ced6de
Fixes for CacheTimeCheck->includeOnce paths.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
39
diff
changeset
|
44 function cache_time($path, $basedir = False) |
|
32
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
45 { |
|
39
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
46 if (!file_exists($path)) { |
|
40
fbbb82ced6de
Fixes for CacheTimeCheck->includeOnce paths.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
39
diff
changeset
|
47 if (DEBUG_LEVEL >= VERBOSITY_WARNING) |
|
39
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
48 print "${path} does not exist"; |
|
40
fbbb82ced6de
Fixes for CacheTimeCheck->includeOnce paths.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
39
diff
changeset
|
49 var_dump($_SERVER); |
|
39
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
50 errorPage("Resource not available"); |
|
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
51 } |
|
bd82b719a0de
Make CacheTimeCheck a singleton.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
38
diff
changeset
|
52 |
|
32
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
53 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
|
54 $mtime = filemtime($path); |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
55 if ($mtime > $this->newest) { |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
56 $this->newest = $mtime; |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
57 } |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
58 } |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
59 |
|
40
fbbb82ced6de
Fixes for CacheTimeCheck->includeOnce paths.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
39
diff
changeset
|
60 function includeOnce($path, $basedir = false) |
|
32
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
61 { |
|
40
fbbb82ced6de
Fixes for CacheTimeCheck->includeOnce paths.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
39
diff
changeset
|
62 if ($basedir) |
|
fbbb82ced6de
Fixes for CacheTimeCheck->includeOnce paths.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
39
diff
changeset
|
63 $path = $basedir . "/" . $path; |
|
32
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
64 $this->cache_time($path); |
|
7b19be62ea94
Remove yet another global, replace by CacheTimeCheck class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
27
diff
changeset
|
65 include_once($path); |
|
16
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
15
diff
changeset
|
66 } |
|
38
42533600214b
Rename cache_check.inc to CacheTimeCheck.inc.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
32
diff
changeset
|
67 |
|
42533600214b
Rename cache_check.inc to CacheTimeCheck.inc.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
32
diff
changeset
|
68 function loadFile($path) |
|
42533600214b
Rename cache_check.inc to CacheTimeCheck.inc.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
32
diff
changeset
|
69 { |
|
42533600214b
Rename cache_check.inc to CacheTimeCheck.inc.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
32
diff
changeset
|
70 $this->cache_time($path); |
|
42533600214b
Rename cache_check.inc to CacheTimeCheck.inc.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
32
diff
changeset
|
71 return loadFile($path); |
|
42533600214b
Rename cache_check.inc to CacheTimeCheck.inc.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
32
diff
changeset
|
72 } |
|
16
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
15
diff
changeset
|
73 } |
|
0
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
74 ?> |
