Zend module for the Geocoder
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.


Geocoder for Zend Framework 2

This package allows you to use Geocoder in Zend Framework 2


Please see the composer.json file.


Run the following composer command:

$ composer require "jguittard/zf-geocoder:~1.0-dev"

Alternately, manually add the following to your composer.json, in the require section:

"require": {
    "jguittard/zf-geocoder": "~1.0-dev"

And then run composer update to ensure the module is installed.

Finally, add the module name to your project's config/application.config.php under the modules key:

return array(
    /* ... */
    'modules' => array(
        /* ... */
    /* ... */


Copy the config/zf.geocoder.local.php.dist to the config/autoload directory and remove the dist extension to jump start configuration.


You can retrieve Geocoder documentation

The following will handle setup and service management within this Zend Framework 2 module.

First, make sure you have set up your configuration file by commenting out the provider(s) you'd like to use.

For example, in config/autoload/zf.geocoder.local.php:

return [
    'geocoder' => [
        'httpAdapter' => '<SERVICE_KEY_OF_HTTP_ADAPTER>',
        'providers' => [
            'google_maps' => [
                'locale' => 'fr_FR',
                'region' => 'Île-de-France',
                'useSsl' => false,

Every provider is exposed as a service in the main Service Manager following the convention: Geocoder\<PROVIDER_NAME_IN_CAMELCASE> Such service will be an instance of corresponding Geocoder\Provider\<PROVIDER_NAME_IN_CAMELCASE> with appropriate configuration passed to its constructor

For example, in your controller:

public function localeAction()
    /* ... */
    $geocoder = $this->getServiceLocator()->get('Geocoder\GoogleMaps');
    $addressCollection = $geocoder->geocode('10 avenue Gambetta, Paris, France');
    /* ... */

Obviously, such a call is bad practice. You should consider injecting your Geocoder service in a dedicated service, not call it from a controller

Unit tests

Make sure dev dependencies are installed

composer install --dev

Run the unit tests


Code styling check