geocoder-php / cache-provider
Cache the result of a provider
4.4.0
2022-07-30 12:09 UTC
Requires
- php: ^7.4 || ^8.0
- psr/simple-cache: ^1.0|^2.0|^3.0
- willdurand/geocoder: ^4.0.0
Requires (Dev)
- phpunit/phpunit: ^9.5
Provides
README
This is the a cache provider from the PHP Geocoder. This is a READ ONLY repository. See the main repo for information and documentation.
Install
composer require geocoder-php/cache-provider
Usage
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\Discovery\Psr18Client(); $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'));
Contribute
Contributions are very welcome! Send a pull request to the main repository or report any issues you find on the issue tracker.