[ Index ]
 

Code source de Zen Cart E-Commerce Shopping Cart 1.3.7.1

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/includes/classes/ -> cache.php (source)

   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  ?>


Généré le : Mon Nov 26 16:45:43 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics