[ Index ] |
|
Code source de Zen Cart E-Commerce Shopping Cart 1.3.7.1 |
1 <?php 2 /** 3 * cache Class. 4 * 5 * @package classes 6 * @copyright Copyright 2003-2006 Zen Cart Development Team 7 * @copyright Portions Copyright 2003 osCommerce 8 * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0 9 * @version $Id: cache.php 3041 2006-02-15 21:56:45Z wilt $ 10 */ 11 if (!defined('IS_ADMIN_FLAG')) { 12 die('Illegal Access'); 13 } 14 /** 15 * cache Class. 16 * handles query caching 17 * 18 * @package classes 19 */ 20 class cache extends base { 21 22 function sql_cache_exists($zf_query) { 23 global $db; 24 $zp_cache_name = $this->cache_generate_cache_name($zf_query); 25 switch (SQL_CACHE_METHOD) { 26 case 'file': 27 // where using a single directory at the moment. Need to look at splitting into subdirectories 28 // like adodb 29 if (file_exists(DIR_FS_SQL_CACHE . '/' . $zp_cache_name . '.sql')) { 30 return true; 31 } else { 32 return false; 33 } 34 break; 35 case 'database': 36 $sql = "select * from " . TABLE_DB_CACHE . " where cache_entry_name = '" . $zp_cache_name . "'"; 37 $zp_cache_exists = $db->Execute($sql); 38 if ($zp_cache_exists->RecordCount() > 0) { 39 return true; 40 } else { 41 return false; 42 } 43 break; 44 case 'memory': 45 return false; 46 break; 47 case 'none': 48 return false; 49 break; 50 } 51 } 52 53 function sql_cache_is_expired($zf_query, $zf_cachetime) { 54 global $db; 55 $zp_cache_name = $this->cache_generate_cache_name($zf_query); 56 switch (SQL_CACHE_METHOD) { 57 case 'file': 58 if (filemtime(DIR_FS_SQL_CACHE . '/' . $zp_cache_name . '.sql') > (time() - $zf_cachetime)) { 59 return false; 60 } else { 61 return true; 62 } 63 break; 64 case 'database': 65 $sql = "select * from " . TABLE_DB_CACHE . " where cache_entry_name = '" . $zp_cache_name ."'"; 66 $cache_result = $db->Execute($sql); 67 if ($cache_result->RecordCount() > 0) { 68 $start_time = $cache_result->fields['cache_entry_created']; 69 if (time() - $start_time > $zf_cachetime) return true; 70 return false; 71 } else { 72 return true; 73 } 74 break; 75 case 'memory': 76 return true; 77 break; 78 case 'none': 79 return true; 80 break; 81 } 82 } 83 84 function sql_cache_expire_now($zf_query) { 85 global $db; 86 $zp_cache_name = $this->cache_generate_cache_name($zf_query); 87 switch (SQL_CACHE_METHOD) { 88 case 'file': 89 @unlink(DIR_FS_SQL_CACHE . '/' . $zp_cache_name . '.sql'); 90 return true; 91 break; 92 case 'database': 93 $sql = "delete from " . TABLE_DB_CACHE . " where cache_entry_name = '" . $zp_cache_name . "'"; 94 $db->Execute($sql); 95 return true; 96 break; 97 case 'memory': 98 unset($this->cache_array[$zp_cache_name]); 99 return true; 100 break; 101 case 'none': 102 return true; 103 break; 104 } 105 } 106 107 function sql_cache_store($zf_query, $zf_result_array) { 108 global $db; 109 $zp_cache_name = $this->cache_generate_cache_name($zf_query); 110 switch (SQL_CACHE_METHOD) { 111 case 'file': 112 $OUTPUT = serialize($zf_result_array); 113 $fp = fopen(DIR_FS_SQL_CACHE . '/' . $zp_cache_name . '.sql',"w"); 114 fputs($fp, $OUTPUT); 115 fclose($fp); 116 return true; 117 break; 118 case 'database': 119 $result_serialize = $db->prepare_input(serialize($zf_result_array)); 120 $sql = "insert into " . TABLE_DB_CACHE . " set cache_entry_name = '" . $zp_cache_name . "', 121 cache_data = '" . $result_serialize . "', 122 cache_entry_created = '" . time() . "'"; 123 $db->Execute($sql); 124 return true; 125 break; 126 case 'memory': 127 return true; 128 break; 129 case 'none': 130 return true; 131 break; 132 } 133 } 134 135 function sql_cache_read($zf_query) { 136 global $db; 137 $zp_cache_name = $this->cache_generate_cache_name($zf_query); 138 switch (SQL_CACHE_METHOD) { 139 case 'file': 140 $zp_fa = file(DIR_FS_SQL_CACHE . '/' . $zp_cache_name . '.sql'); 141 $zp_result_array = unserialize(implode('', $zp_fa)); 142 return $zp_result_array; 143 break; 144 case 'database': 145 $sql = "select * from " . TABLE_DB_CACHE . " where cache_entry_name = '" . $zp_cache_name . "'"; 146 $zp_cache_result = $db->Execute($sql); 147 $zp_result_array = unserialize($zp_cache_result->fields['cache_data']); 148 return $zp_result_array; 149 break; 150 case 'memory': 151 return true; 152 break; 153 case 'none': 154 return true; 155 break; 156 } 157 } 158 159 function sql_cache_flush_cache() { 160 global $db; 161 switch (SQL_CACHE_METHOD) { 162 case 'file': 163 if ($za_dir = @dir(DIR_FS_SQL_CACHE)) { 164 while ($zv_file = $za_dir->read()) { 165 if (strstr($zv_file, '.sql') && strstr($zv_file, 'zc_')) { 166 @unlink(DIR_FS_SQL_CACHE . '/' . $zv_file); 167 } 168 } 169 } 170 return true; 171 break; 172 case 'database': 173 $sql = "delete from " . TABLE_DB_CACHE; 174 $db->Execute($sql); 175 return true; 176 break; 177 case 'memory': 178 return true; 179 break; 180 case 'none': 181 return true; 182 break; 183 } 184 } 185 186 function cache_generate_cache_name($zf_query) { 187 switch (SQL_CACHE_METHOD) { 188 case 'file': 189 return 'zc_' . md5($zf_query); 190 break; 191 case 'database': 192 return 'zc_' . md5($zf_query); 193 break; 194 case 'memory': 195 return 'zc_' . md5($zf_query); 196 break; 197 case 'none': 198 return true; 199 break; 200 } 201 } 202 } 203 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Mon Nov 26 16:45:43 2007 | par Balluche grâce à PHPXref 0.7 |
![]() |