Skip to content

PhpGt/FileCache

Repository files navigation

Cache data in local files.

Making expensive operations like HTTP calls or database queries can be minimised by caching the result of the operations in local files. This can improve performance, reduce network usage, and avoid rate limiting, to name some common benefits. This library provides a single function to define where to cache, what to cache, and when to cache. A validity of 1 hour is set by default, if the valid time is not specified.


Build status Code quality Code coverage Current version PHP.Gt/FileCache documentation

Example usage: get the latitude/longitude of the user's IP address

It's an expensive operation to make an HTTP call for every page view, but in this example we want to use a remote service to provide us with the estimated latitude/longitude of the current IP address.

The first time we see the IP address will have to make an HTTP call, but subsequent calls will be able to take advantage of the cache.

$ipAddress = $_SERVER["REMOTE_ADDR"];
$fileCache = new Gt\FileCache\Cache("/tmp/ip-address-geolocation");

// This function uses file_get_contents to contact the remote server
// at ipinfo.io, a costly operation. We will pass the lookup function
// into the cache, so it is only called when we don't have a fresh result.
$lookup = function()use($ipAddress):string {
	$jsonString = file_get_contents("https://ipinfo.io/$ipAddress");
	$obj = json_decode($jsonString);
	return $obj->loc;
}

$location = $fileCache->get("lat-lon", $lookup);
echo "Your location is: $location";