Mercurial > SimpleWebPresenter
annotate FileCacheSet.inc @ 111:adf7b11921f4
No compression when debugging.
Synchronize caching headers.
| author | Tom Fredrik "BFG" Klaussen <bfg@blenning.no> |
|---|---|
| date | Tue, 15 Mar 2016 12:55:42 +0100 |
| parents | 23a59da90fc7 |
| children |
| rev | line source |
|---|---|
|
69
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
1 <?php |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
2 $baseDir = dirname(__FILE__); |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
3 |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
4 include_once 'Logger.inc'; |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
5 $cache = ScriptIncludeCache::instance(__FILE__); |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
6 $cache->cache_time("${baseDir}/Logger.inc"); |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
7 |
|
99
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
90
diff
changeset
|
8 class Cache { |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
90
diff
changeset
|
9 private $max_age=0; |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
90
diff
changeset
|
10 function setMaxAge($seconds) |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
90
diff
changeset
|
11 { |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
90
diff
changeset
|
12 $this->max_age=$seconds; |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
90
diff
changeset
|
13 } |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
90
diff
changeset
|
14 |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
90
diff
changeset
|
15 function cacheControl() { |
|
111
adf7b11921f4
No compression when debugging.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
103
diff
changeset
|
16 if ($this->max_age > 0) { |
|
adf7b11921f4
No compression when debugging.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
103
diff
changeset
|
17 return array("expires" => toGMTime(time()+$this->max_age), "cache-control" => "public, max-age=$this->max_age"); |
|
adf7b11921f4
No compression when debugging.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
103
diff
changeset
|
18 } |
|
adf7b11921f4
No compression when debugging.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
103
diff
changeset
|
19 else { |
|
adf7b11921f4
No compression when debugging.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
103
diff
changeset
|
20 return array("expires" => 0, "cache-control" => "public, max-age=0, no-cache"); |
|
adf7b11921f4
No compression when debugging.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
103
diff
changeset
|
21 } |
|
99
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
90
diff
changeset
|
22 } |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
90
diff
changeset
|
23 |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
90
diff
changeset
|
24 }; |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
90
diff
changeset
|
25 |
|
70
62b9d7a35658
Fix documentation regressions.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
26 /** |
|
62b9d7a35658
Fix documentation regressions.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
27 * Caches a set of file with timestamps |
|
62b9d7a35658
Fix documentation regressions.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
28 */ |
|
99
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
90
diff
changeset
|
29 class FileCacheSet extends Cache { |
|
69
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
30 private $newest = 0; |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
31 private $files = array(); |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
32 private $parentCaches = array(); |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
33 |
|
70
62b9d7a35658
Fix documentation regressions.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
34 /** |
|
62b9d7a35658
Fix documentation regressions.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
35 * Constructs a FileCacheSet object |
|
62b9d7a35658
Fix documentation regressions.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
36 * |
|
62b9d7a35658
Fix documentation regressions.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
37 * @param $parent optional linked parent cache to sync with |
|
62b9d7a35658
Fix documentation regressions.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
38 */ |
|
69
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
39 protected function __construct($parent = null) { |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
40 if ($parent) { |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
41 $this->addParent($parent); |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
42 } |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
43 } |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
44 |
|
70
62b9d7a35658
Fix documentation regressions.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
45 /** |
|
62b9d7a35658
Fix documentation regressions.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
46 * Links up a parent cache |
|
62b9d7a35658
Fix documentation regressions.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
47 * |
|
62b9d7a35658
Fix documentation regressions.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
48 * @param $parent cache we should sync with |
|
62b9d7a35658
Fix documentation regressions.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
49 */ |
|
69
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
50 protected function addParent($parent) |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
51 { |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
52 array_push($this->parentCaches, $parent); |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
53 } |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
54 |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
55 /** |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
56 * List a set of files which contributes to this pages cacheset. |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
57 * |
|
74
1d5166aba2c5
Documentation fixes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
70
diff
changeset
|
58 * @param $humanReadable If the timestamp should be human readable. |
|
69
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
59 * |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
60 * @return an associative array of file, and timestamp |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
61 */ |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
62 function cacheSet($humanReadable = False) |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
63 { |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
64 $retVal = array(); |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
65 foreach ($this->parentCaches as $parent) { |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
66 $retVal = array_merge($retVal, $parent->cacheSet($humanReadable)); |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
67 } |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
68 foreach($this->files as $file) { |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
69 $mtime = filemtime($file); |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
70 if ($humanReadable) |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
71 $mtime = gmdate('D, d M Y H:i:s', $mtime) . ' GMT'; |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
72 |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
73 $retVal[$file] = $mtime; |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
74 } |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
75 return $retVal; |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
76 } |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
77 |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
78 /** |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
79 * Include a file in the cacheset |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
80 * |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
81 * @param $path the path of the file |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
82 */ |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
83 function cache_time($path) |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
84 { |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
85 if (!file_exists($path)) { |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
86 Logger::warn("${path} does not exist"); |
|
90
aafc23919e79
Validating errorPage.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
74
diff
changeset
|
87 errorPage("Resource is not available", 404); |
|
69
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
88 } |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
89 |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
90 array_push($this->files, $path); |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
91 $mtime = filemtime($path); |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
92 if ($mtime > $this->newest) { |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
93 $this->newest = $mtime; |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
94 } |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
95 } |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
96 |
|
70
62b9d7a35658
Fix documentation regressions.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
97 /** |
|
62b9d7a35658
Fix documentation regressions.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
98 * Find the newest member of the combined cacheset |
|
62b9d7a35658
Fix documentation regressions.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
99 * |
|
62b9d7a35658
Fix documentation regressions.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
100 * @return timestamp of newest member |
|
62b9d7a35658
Fix documentation regressions.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
101 */ |
|
69
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
102 function getNewest() |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
103 { |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
104 $newest = 0; |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
105 foreach ($this->parentCaches as $parent) { |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
106 $newest = max($newest, $parent->getNewest()); |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
107 } |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
108 $newest = max($newest, $this->newest); |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
109 return $newest; |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
110 } |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
111 } |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
112 |
|
70
62b9d7a35658
Fix documentation regressions.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
113 /** |
|
62b9d7a35658
Fix documentation regressions.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
114 * Singleton class, keeps track of all scriptfile includes |
|
62b9d7a35658
Fix documentation regressions.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
115 * |
|
62b9d7a35658
Fix documentation regressions.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
116 * This class is typically used as a parent class of another cache |
|
62b9d7a35658
Fix documentation regressions.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
117 */ |
|
69
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
118 class ScriptIncludeCache extends FileCacheSet |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
119 { |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
120 private static $myInstance = 0; |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
121 |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
122 protected function __construct($filename = False) |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
123 { |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
124 parent::__construct(); |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
125 if ($filename) |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
126 $this->cache_time($filename); |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
127 $this->cache_time(__FILE__); |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
128 } |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
129 |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
130 /** |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
131 * Generates a singleton instance of this CacheTimeCheck |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
132 * |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
133 * @param $filename an optional file to include in the cacheset |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
134 * |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
135 * @return a CacheTimeCheck object |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
136 */ |
|
103
23a59da90fc7
Make static function static.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
99
diff
changeset
|
137 public static function instance($filename = False) |
|
69
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
138 { |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
139 if (! self::$myInstance) |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
140 self::$myInstance = new self($filename); |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
141 elseif ($filename) |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
142 self::$myInstance->cache_time($filename); |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
143 return self::$myInstance; |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
144 } |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
145 |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
146 /** |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
147 * Convenience function to include a file, and add it to the cacheset. |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
148 * |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
149 * @param $path path of the file |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
150 * @param $basedir a directory to prepend to the path |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
151 */ |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
152 function includeOnce($path, $basedir = false) |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
153 { |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
154 if ($basedir) |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
155 $path = $basedir . "/" . $path; |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
156 $this->cache_time($path); |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
157 include_once($path); |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
158 } |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
159 } |
|
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
160 ?> |
