Cache the result of a provider

4.3.0 2020-12-21 16:41 UTC

This package is auto-updated.

Last update: 2021-09-20 14:02:54 UTC


Build Status Latest Stable Version Total Downloads Monthly Downloads Code Coverage Quality Score Software License

This is the a cache provider from the PHP Geocoder. This is a READ ONLY repository. See the main repo for information and documentation.


composer require geocoder-php/cache-provider


The ProviderCache allows you to use any PSR-6 compatible cache driver. You can find compatible drivers on packagist.

By default, the result is cached forever. You can set a cache expiry by passing an integer representing the number of seconds as the third parameter.

$httpClient = new \Http\Adapter\Guzzle6\Client();
$provider = new \Geocoder\Provider\GoogleMaps\GoogleMaps($httpClient);

$psr6Cache = new ArrayCachePool(); // Requires `cache/array-adapter` package

$cachedProvider = new \Geocoder\Provider\Cache\ProviderCache(
    $provider, // Provider to cache
    $psr6Cache, // PSR-6 compatible cache
    600 // Cache expiry, in seconds

$geocoder = new \Geocoder\StatefulGeocoder($cachedProvider, 'en');

// Will come from Google Maps API
$result1 = $geocoder->geocodeQuery(GeocodeQuery::create('Buckingham Palace, London'));
// Will come from the cache
$result2 = $geocoder->geocodeQuery(GeocodeQuery::create('Buckingham Palace, London'));


Contributions are very welcome! Send a pull request to the main repository or report any issues you find on the issue tracker.