Skip to content

geocoder-php/cache-provider

Folders and files

NameName
Last commit message
Last commit date

Latest commit

15f43e9 Â· Feb 11, 2025

History

36 Commits
Nov 14, 2024
Jul 31, 2023
Jun 27, 2017
Jun 27, 2017
Jul 30, 2022
Jun 27, 2017
Mar 2, 2024
Dec 15, 2023
Feb 11, 2025
Dec 21, 2020

Repository files navigation

Cache provider

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.

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.