Simple cache for PHP
Maybe not many of you already know that I had a dark side. Yes I was developing in ASP for long time……
I actually still like it, and because of that I like that much PHP (Well love it).
Everything is lot better in PHP, faster, updated, secure, easier…. But I was missing something that was really useful in ASP, the Application variables.
Thanks to leosingleton I found a solution but I modified in order to improve it.
Here you have this code to cache in disk variables ;)
First we need some defines:
define("APP_ACTIVE",true);//false disabled, true enabled the cache define("APP_DATA_FILE",SITE_ROOT."/APP/application.data");//where we keep the cache, needs to be writeble define("APP_EXPIRE",86400);//in seconds, when the cache expire, false is never deleted by time
This are the functions that makes this work:
//////////////////////////////////////////////////////////// function APP_start (){//load variables from the file if (APP_ACTIVE){ global $_APP; if (file_exists(APP_DATA_FILE)){ // if data file exists, load the cached variables $file = fopen(APP_DATA_FILE, "r");// read data file if ($file){ $data = fread($file, filesize(APP_DATA_FILE)); fclose($file); } // build application variables from data file $_APP = unserialize($data); } else fopen(APP_DATA_FILE, "w");//if the file does not exist we create it if (APP_DATA_FILE!=false){//if it's false we don't delete //erase the APP every X minutes before loading next time $app_time=filemtime(APP_DATA_FILE)+APP_EXPIRE; if (time()>$app_time) unlink (APP_DATA_FILE);//erase the APP } } } //////////////////////////////////////////////////////////// function APP_write(){//writes into the cache file if (APP_ACTIVE){ global $_APP; $data = serialize($_APP); // write application data to file $file = fopen(APP_DATA_FILE, "w"); if ($file){ fwrite($file, $data); fclose($file); } } }
Usage:
We need to start the cache before you try to retrieve data:
APP_start();//starting values from the cache
Write data in the cache:
$_APP["var_name"]=$anyVariable APP_write(); //we need to wirte every time we change values
Get value:
$anyVariable=$_APP["var_name"];
In $_APP[] you can keep as many variables as you want.
Notes:
-If you need to use $_APP in a function remember to make it global
-Only write when there’s changes in the vars
-Do not store lot of data, if not will make it really slow..
-Only start the APP once in the script
-Change the expire time on your needs
-The file stored in the disk should be only writable or readable by the server.
- Light PHP Frameworks
- phpMyDB - Data base class for MySql
- Error reporting for PHP
- PHP Class for better cache - fileCache
- Check if URL exists and is Online - PHP
- GRUB Error 17 : Cannot mount selected partition Linux Error and Recovery
- The Nickname Cache in Outlook - Get to Know your .NK2 file
- Save Time, Money and Space in Over 80 Ways
- Apple announces Top 10 iPhone App downloads of 2008
- Best Free iPod touch apps - weekly ratings #10
Help sharing and Flatter me ;)

[...] days a go I wrote about a cache class and longer a go about application variables for php. This is a mix of both in just one powerful [...]