middlewares/geolocation

Middleware to geolocate the client using the ip address

v3.0.0 2020-12-04 00:07 UTC

This package is auto-updated.

Last update: 2024-11-29 06:16:03 UTC


README

Latest Version on Packagist Software License Testing Total Downloads ![SensioLabs Insight][ico-sensiolabs]

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.