PHP Classes
elePHPant
Icontem

AhCache: Store cached data in files

Recommend this page to a friend!
  Info   View files Documentation   View files View files (4)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2015-06-28 (1 year ago) RSS 2.0 feedNot yet rated by the usersTotal: 131 This week: 1All time: 8,373 This week: 840Up
Version License PHP version Categories
ahcache 2.3GNU Free Document...5.0PHP 5, Files and Folders, Cache
Description Author

This class can store cached data in files.

It can check if a given cache file exists and it has not passed more than a given expiry time. The class checks the last modified timestamp to determine if the cache file is expired.

In that case the class can retrieve the cached data. Otherwise the class can store the cache data in a file for a given expiry period.

The cache directory is derived from the cache ID value. The class can create sub-directories to reduce the number of cache files per directory.

The class can also delete individual cache files, all cached files about a given age of one or all modules.

Recommendations
  Performance   Level  
Name: Axel Hahn <contact>
Classes: 5 packages by
Country: Switzerland Switzerland
Innovation award
Innovation award
Nominee: 2x

Details

cache.class.php

AXELS CONTENT CACHE CLASS V2.3

http://www.axel-hahn.de/php_contentcache License: GNU/GPL v3

2009-07-20 1.0 cache class on www.axel-hahn.de 2011-08-27 1.1 comments added; sCacheFile is private 2012-02-04 2.0 cache serialzable types; more methods, i.e.:

              - comparison of timestimp with a sourcefile
              - cleanup unused cachefiles

2012-05-15 2.1 isExpired() returns as bool; new method iExpired() to get

             expiration in sec

2012-05-15 2.2 - rename to AhCache

             - _cleanup checks with file_exists

2014-03-31 2.3 - added _setup() that to includes custom settings

             - limit number of files in cache directory

--- typical usage:

example using expiration (ttl value):

$sContent='';  
$iTtl=60*5; // 5 min 
  
require_once("/php/cache.class.php");  
$myCache=new AhCache("my-app","task-id");  
  
if($myCache->isExpired()) {  
    // cache does not exist or is expired
    $sContent=...  
  
    // save cache
    $myCache->write($sContent, $iTtl);  
  
} else {  
    // read cached data
    $sContent=$myCache->read();  
}  
  
// output
echo $sContent;  

example compare age of cache with age of a sourcefile

require_once("/php/cache.class.php");  
$sCsvFile="my_source_file.csv"  
  
$myCache=new AhCache("my-app","task-id");  
$sContent=$myCache->read(); // read cached data
  
// comparison of last modified time (mtime)
if (!$myCache->isNewerThanFile($sCsvFile)) {  
  
	// update content 
	$sContent=...  
  
	// ... and save cache
	$myCache->write($sContent);  
};  
  
// output
echo $sContent;

cleanup cache directory

require_once("/php/cache.class.php");  
$o=new AhCache("my-app");  
$o->cleanup(606024*1); // delete all Cachefiles of the module "my-app" older 1 day

or cleanup cachefiles of all modules
$o=new Cache(); $o->cleanup(606024*1);

  Files folder image Files  
File Role Description
Plain text file cache.class.php Class caching class
Accessible without login Plain text file cache.class_config.php Conf. config for finetuning class (leave untouched in the beginning)
Accessible without login Plain text file readme.txt Doc. Readme
Accessible without login HTML file simpledoc.html Doc. Class documentation

 Version Control Unique User Downloads Download Rankings  
 0%
Total:131
This week:1
All time:8,373
This week:840Up