PHP Classes

File: cache.inc

Recommend this page to a friend!
  Classes of Shaun Thomas  >  cache  >  cache.inc  >  Download  
File: cache.inc
Role: ???
Content type: text/plain
Description: Cache Class
Class: cache
Author: By
Last change:
Date: 20 years ago
Size: 2,681 bytes
 

Contents

Class file image Download
<?PHP
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- //
// Package : cache               Version : 1.2
// Date    : 04/20/2001          Author  : Shaun Thomas
// Req     : PHP 3.0               Type  : Class
//
// Description:
// ------------
// Caching should be a "behind the scenes" kind of thing.  So, this
// class was designed to handle all caching abilities, whether it be
// through file or database.  The user of the cacheing system need
// not know.
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- //

class CCache
{
  var $cachePath,    // Path to save or load the cache from.
      $fileName,     // Filename we'll generate for all save/loads.
      $expire;       // When cache pages should be recalculated. (in seconds)

  // -------------------------------------------------- //
  // A constructor sets up our cache environment so
  // we can start shuffling files around.  All we need
  // is a path to save/retrieve files at/from.
  // -------------------------------------------------- //
  function CCache($cPath)
  {
    global $QUERY_STRING, $SCRIPT_NAME;

    $this->cachePath = $cPath;

    // Generate a filename based on this script's name,
    // and query string.
    $this->fileName=base64_encode($SCRIPT_NAME.$QUERY_STRING);

  } // End function CCache.


  // -------------------------------------------------- //
  // Saves whatever is sent to this function, to the
  // generated filename for this script.
  // -------------------------------------------------- //
  function save(&$contents)
  {
    $fp = fopen($this->cachePath."/".$this->fileName, "w");
    if (!$fp) return;

    fwrite($fp, $contents);
    fclose($fp);

  } // End function save.


  // -------------------------------------------------- //
  // Of course, we need some way of getting a cached
  // file.  This returns false if there is no file.
  // -------------------------------------------------- //
  function retrieve()
  {
    $fName = $this->cachePath."/".$this->fileName;

    // If there is no cache page, or the page is expired, tell
    // the caller to recalculate it.
    if (!file_exists($fName)) return FALSE;
    if (filemtime($fName) < (time() - $this->expire)) return FALSE;

    $fp = fopen($fName, "r");
    if (!$fp) return FALSE;

    $retVal = fread($fp, filesize($fName));
    fclose($fp);

    return $retVal;

  } // End function retrieve.
}

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- //
// End cache class
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- //
?>
For more information send a message to info at phpclasses dot org.