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(
/* ... */
'ZF\Geocoder',
),
/* ... */
);
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
Make sure dev
dependencies are installed
composer install --dev
Run the unit tests
./vendor/bin/phpunit
Code styling check
./vendor/bin/phpcs