source: trunk/www.guidonia.net/wp/wp-content/plugins/tubepress/classes/net/php/pear/Cache/Lite/File.class.php@ 44

Last change on this file since 44 was 44, checked in by luciano, 14 years ago
File size: 2.6 KB
Line 
1<?php
2
3/**
4* This class extends Cache_Lite and offers a cache system driven by a master file
5*
6* With this class, cache validity is only dependent of a given file. Cache files
7* are valid only if they are older than the master file. It's a perfect way for
8* caching templates results (if the template file is newer than the cache, cache
9* must be rebuild...) or for config classes...
10* There are some examples in the 'docs/examples' file
11* Technical choices are described in the 'docs/technical' file
12*
13* @package Cache_Lite
14* @version $Id: File.php,v 1.3 2005/12/04 16:03:55 fab Exp $
15* @author Fabien MARTY <fab@php.net>
16*/
17
18class net_php_pear_Cache_Lite_File extends net_php_pear_Cache_Lite
19{
20
21 // --- Private properties ---
22
23 /**
24 * Complete path of the file used for controlling the cache lifetime
25 *
26 * @var string $_masterFile
27 */
28 var $_masterFile = '';
29
30 /**
31 * Masterfile mtime
32 *
33 * @var int $_masterFile_mtime
34 */
35 var $_masterFile_mtime = 0;
36
37 // --- Public methods ----
38
39 /**
40 * Constructor
41 *
42 * $options is an assoc. To have a look at availables options,
43 * see the constructor of the Cache_Lite class in 'Cache_Lite.php'
44 *
45 * Comparing to Cache_Lite constructor, there is another option :
46 * $options = array(
47 * (...) see Cache_Lite constructor
48 * 'masterFile' => complete path of the file used for controlling the cache lifetime(string)
49 * );
50 *
51 * @param array $options options
52 * @access public
53 */
54 function net_php_pear_Cache_Lite_File($options = array(NULL))
55 {
56 $options['lifetime'] = 0;
57 $this->net_php_pear_Cache_Lite($options);
58 if (isset($options['masterFile'])) {
59 $this->_masterFile = $options['masterFile'];
60 } else {
61 return $this->raiseError('Cache_Lite_File : masterFile option must be set !');
62 }
63 if (!($this->_masterFile_mtime = @filemtime($this->_masterFile))) {
64 return $this->raiseError('Cache_Lite_File : Unable to read masterFile : '.$this->_masterFile, -3);
65 }
66 }
67
68 /**
69 * Test if a cache is available and (if yes) return it
70 *
71 * @param string $id cache id
72 * @param string $group name of the cache group
73 * @return string data of the cache (or false if no cache available)
74 * @access public
75 */
76 function get($id, $group = 'default')
77 {
78 if ($data = parent::get($id, $group, true)) {
79 if ($filemtime = $this->lastModified()) {
80 if ($filemtime > $this->_masterFile_mtime) {
81 return $data;
82 }
83 }
84 }
85 return false;
86 }
87
88}
89
90?>
Note: See TracBrowser for help on using the repository browser.