2017 © Pedro Peláez
 

library zf-geocoder

Geocoder Service module for Zend Framework

image

jguittard/zf-geocoder

Geocoder Service module for Zend Framework

  • Saturday, October 15, 2016
  • by julienguittard
  • Repository
  • 1 Watchers
  • 1 Stars
  • 32 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 5 Forks
  • 0 Open issues
  • 9 Versions
  • 10 % Grown

The README.md

Geocoder for Zend Framework

This package allows you to use Geocoder in Zend Framework., (*1)

It is still compatible with Zend Framework 2 and 3 Service Manager., (*2)

Requirements

Please see the composer.json file., (*3)

Installation

Run the following composer command:, (*4)

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

Alternately, manually add the following to your composer.json, in the require section:, (*5)

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

And then run composer update to ensure the module is installed., (*6)

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

return array(
    /* ... */
    'modules' => array(
        /* ... */
        'ZF\Geocoder',
    ),
    /* ... */
);

Or rely on Zend Component Installer to inject this module automatically, (*8)

composer require zendframework/zend-composer-installer:^0.4

Configuration

Copy the config/zf.geocoder.local.php.dist to the config/autoload directory and remove the dist extension to jump start configuration., (*9)

Usage

You can retrieve Geocoder documentation, (*10)

The following will handle setup and service management within this Zend Framework module., (*11)

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

For example, in config/autoload/zf.geocoder.local.php:, (*13)

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, (*14)

For example, in your controller:, (*15)

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, (*16)

Unit tests

Make sure dev dependencies are installed, (*17)

composer install --dev

Run the unit tests, (*18)

composer test

Code styling check, (*19)

composer cs-check

Check both, (*20)

composer check

The Versions