annotate CacheTimeCheck.inc @ 103:23a59da90fc7

Make static function static.
author Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
date Mon, 07 Mar 2016 17:06:42 +0100
parents d98e315308cd
children adf7b11921f4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
3898353ed1d8 Include fixes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 50
diff changeset
2 $baseDir = dirname(__FILE__);
3898353ed1d8 Include fixes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 50
diff changeset
3
3898353ed1d8 Include fixes.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 50
diff changeset
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
99
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
9 function toGMTime($time) {
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
10 return gmdate('D, d M Y H:i:s', $time) . ' GMT';
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
11 }
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
12
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
13 /**
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
14 * Checks if a HTTP_IF_MODIFIED_SINCE header is set, if this file is
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
15 * newer, set a Last-Modified header, otherwise abort with an 304
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
16 * status code
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
17 */
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
18 function CheckHttpModified($cache)
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
19 {
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
20 if (DEBUG_LEVEL >= VERBOSITY_DEBUG)
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
21 var_dump($_SERVER);
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
22
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
23 $gmdate_mod = toGMTime($cache->getNewest());
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
24
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
25 if ($_SERVER['REDIRECT_URL'] == '/sitemap.xml') {
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
26 //print_r($gmdate_mod);
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
27 }
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
28
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
29 if(array_key_exists('HTTP_IF_MODIFIED_SINCE', $_SERVER)) {
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
30 $HTTP_IF_MODIFIED_SINCE = $_SERVER['HTTP_IF_MODIFIED_SINCE'];
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
31 $if_modified_since = preg_replace('/;.*$/', '', $HTTP_IF_MODIFIED_SINCE);
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
32
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
33 if (strtotime($if_modified_since) >= $cache->getNewest()) {
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
34 header("HTTP/1.0 304 Not Modified");
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
35 foreach($cache->cacheControl() as $header => $value) {
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
36 header ("${header}: ${value}");
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
37 }
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
38 return false;
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
39 }
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
40 }
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
41
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
42 foreach($cache->cacheControl() as $header => $value) {
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
43 header ("${header}: ${value}");
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
44 }
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
45 header("Last-Modified: $gmdate_mod");
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
46 return true;
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
47 }
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
48
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
49
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
50
68
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 * 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
53 * 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
54 *
4dfa3f6a2dc1 Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 65
diff changeset
55 * @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
56 */
4dfa3f6a2dc1 Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 65
diff changeset
57 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
58 {
4dfa3f6a2dc1 Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 65
diff changeset
59 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
60 {
4dfa3f6a2dc1 Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 65
diff changeset
61 parent::__construct();
4dfa3f6a2dc1 Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 65
diff changeset
62 if ($filename)
4dfa3f6a2dc1 Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 65
diff changeset
63 $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
64 $this->cache_time(__FILE__);
99
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
65 $this->max_age=0;
68
4dfa3f6a2dc1 Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 65
diff changeset
66 }
4dfa3f6a2dc1 Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 65
diff changeset
67
4dfa3f6a2dc1 Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 65
diff changeset
68 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
69 {
4dfa3f6a2dc1 Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 65
diff changeset
70 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
71 }
4dfa3f6a2dc1 Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 65
diff changeset
72
4dfa3f6a2dc1 Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 65
diff changeset
73 /**
48
c6d0892f81ff Documentation.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 47
diff changeset
74 * 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
75 *
c6d0892f81ff Documentation.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 47
diff changeset
76 * @param $path path of the file
c6d0892f81ff Documentation.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 47
diff changeset
77 * @return the contents of the file
c6d0892f81ff Documentation.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 47
diff changeset
78 */
38
42533600214b Rename cache_check.inc to CacheTimeCheck.inc.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 32
diff changeset
79 function loadFile($path)
42533600214b Rename cache_check.inc to CacheTimeCheck.inc.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 32
diff changeset
80 {
42533600214b Rename cache_check.inc to CacheTimeCheck.inc.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 32
diff changeset
81 $this->cache_time($path);
42533600214b Rename cache_check.inc to CacheTimeCheck.inc.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 32
diff changeset
82 return loadFile($path);
42533600214b Rename cache_check.inc to CacheTimeCheck.inc.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 32
diff changeset
83 }
99
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 69
diff changeset
84
16
a64e8f968e7e Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 15
diff changeset
85 }
50
2d0cda52f43f Remove unused variable.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 48
diff changeset
86 ?>