Public Member Functions | |
| CI_DB_Cache (&$db) | |
| Constructor. | |
| check_path ($path= '') | |
| Set Cache Directory Path. | |
| read ($sql) | |
| Retrieve a cached query. | |
| write ($sql, $object) | |
| Write a query to a cache file. | |
| delete ($segment_one= '', $segment_two= '') | |
| Delete cache files within a particular directory. | |
| delete_all () | |
| Delete all existing cache files. | |
Public Attributes | |
| $CI | |
| $db | |
Definition at line 25 of file DB_cache.php.
| CI_DB_Cache::check_path | ( | $ | path = '' |
) |
Set Cache Directory Path.
public
| string | the path to the cache directory |
Definition at line 54 of file DB_cache.php.
References is_really_writable().
Referenced by read(), and write().
00055 { 00056 if ($path == '') 00057 { 00058 if ($this->db->cachedir == '') 00059 { 00060 return $this->db->cache_off(); 00061 } 00062 00063 $path = $this->db->cachedir; 00064 } 00065 00066 // Add a trailing slash to the path if needed 00067 $path = preg_replace("/(.+?)\/*$/", "\\1/", $path); 00068 00069 if ( ! is_dir($path) OR ! is_really_writable($path)) 00070 { 00071 // If the path is wrong we'll turn off caching 00072 return $this->db->cache_off(); 00073 } 00074 00075 $this->db->cachedir = $path; 00076 return TRUE; 00077 }


| CI_DB_Cache::CI_DB_Cache | ( | &$ | db | ) |
Constructor.
Grabs the CI super object instance so we can access it.
Definition at line 36 of file DB_cache.php.
References $db, and get_instance().
00037 { 00038 // Assign the main CI object to $this->CI 00039 // and load the file helper since we use it a lot 00040 $this->CI =& get_instance(); 00041 $this->db =& $db; 00042 $this->CI->load->helper('file'); 00043 }

| CI_DB_Cache::delete | ( | $ | segment_one = '', |
|
| $ | segment_two = '' | |||
| ) |
Delete cache files within a particular directory.
public
Definition at line 161 of file DB_cache.php.
00162 { 00163 if ($segment_one == '') 00164 { 00165 $segment_one = ($this->CI->uri->segment(1) == FALSE) ? 'default' : $this->CI->uri->segment(1); 00166 } 00167 00168 if ($segment_two == '') 00169 { 00170 $segment_two = ($this->CI->uri->segment(2) == FALSE) ? 'index' : $this->CI->uri->segment(2); 00171 } 00172 00173 $dir_path = $this->db->cachedir.$segment_one.'+'.$segment_two.'/'; 00174 00175 delete_files($dir_path, TRUE); 00176 }
| CI_DB_Cache::delete_all | ( | ) |
| CI_DB_Cache::read | ( | $ | sql | ) |
Retrieve a cached query.
The URI being requested will become the name of the cache sub-folder. An MD5 hash of the SQL statement will become the cache file name
public
Definition at line 90 of file DB_cache.php.
References check_path().
00091 { 00092 if ( ! $this->check_path()) 00093 { 00094 return $this->db->cache_off(); 00095 } 00096 00097 $segment_one = ($this->CI->uri->segment(1) == FALSE) ? 'default' : $this->CI->uri->segment(1); 00098 00099 $segment_two = ($this->CI->uri->segment(2) == FALSE) ? 'index' : $this->CI->uri->segment(2); 00100 00101 $filepath = $this->db->cachedir.$segment_one.'+'.$segment_two.'/'.md5($sql); 00102 00103 if (FALSE === ($cachedata = read_file($filepath))) 00104 { 00105 return FALSE; 00106 } 00107 00108 return unserialize($cachedata); 00109 }

| CI_DB_Cache::write | ( | $ | sql, | |
| $ | object | |||
| ) |
Write a query to a cache file.
public
Definition at line 119 of file DB_cache.php.
References check_path().
00120 { 00121 if ( ! $this->check_path()) 00122 { 00123 return $this->db->cache_off(); 00124 } 00125 00126 $segment_one = ($this->CI->uri->segment(1) == FALSE) ? 'default' : $this->CI->uri->segment(1); 00127 00128 $segment_two = ($this->CI->uri->segment(2) == FALSE) ? 'index' : $this->CI->uri->segment(2); 00129 00130 $dir_path = $this->db->cachedir.$segment_one.'+'.$segment_two.'/'; 00131 00132 $filename = md5($sql); 00133 00134 if ( ! @is_dir($dir_path)) 00135 { 00136 if ( ! @mkdir($dir_path, DIR_WRITE_MODE)) 00137 { 00138 return FALSE; 00139 } 00140 00141 @chmod($dir_path, DIR_WRITE_MODE); 00142 } 00143 00144 if (write_file($dir_path.$filename, serialize($object)) === FALSE) 00145 { 00146 return FALSE; 00147 } 00148 00149 @chmod($dir_path.$filename, DIR_WRITE_MODE); 00150 return TRUE; 00151 }

| CI_DB_Cache::$CI |
Definition at line 27 of file DB_cache.php.
| CI_DB_Cache::$db |