middlewares/geolocation

Middleware to geolocate the client using the ip address

v2.0.0 2018-08-04 12:40 UTC

README

Latest Version on Packagist Software License Build Status Quality Score Total Downloads SensioLabs Insight

Middleware to geolocate the client using the ip address and Geocoder and save the result as a request attribute.

Requirements

Installation

This package is installable and autoloadable via Composer as middlewares/geolocation.

composer require middlewares/geolocation

Example

$freeGeoIpProvider = new Geocoder\Provider\FreeGeoIp($adapter);

$dispatcher = new Dispatcher([
    new Middlewares\Geolocation($freeGeoIpProvider),

    function ($request) {
        //Get the client location
        $location = $request->getAttribute('client-location');

        $country = $location->first()->getCountry();
    }
]);

$response = $dispatcher->dispatch(new ServerRequest());

Options

__construct(Geocoder\Provider\Provider $provider)

The geocoder provider used to geolocate the client.

It's also recommended to configure it to caching responses.

ipAttribute(string $ipAttribute)

By default uses the REMOTE_ADDR server parameter to get the client ip. This option allows to use a request attribute. Useful to combine with a ip detection middleware, for example client-ip.

attribute(string $attribute)

The attribute name used to store the client addresses in the server request. By default is client-location.

Please see CHANGELOG for more information about recent changes and CONTRIBUTING for contributing details.

The MIT License (MIT). Please see LICENSE for more information.