https://github.com/phpgt/filecache
Cache data in local files.
https://github.com/phpgt/filecache
Last synced: about 1 year ago
JSON representation
Cache data in local files.
- Host: GitHub
- URL: https://github.com/phpgt/filecache
- Owner: phpgt
- Created: 2022-07-06T14:59:32.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2025-03-07T15:59:08.000Z (over 1 year ago)
- Last Synced: 2025-04-12T06:00:02.877Z (about 1 year ago)
- Language: PHP
- Size: 81.1 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
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.
***
## 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.
```php
$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";
```