jguittard/

zf-geocoder

Zend Framework 的地理编码服务模块

v1.1.1 2016-10-15 14:57 UTC

README

此包允许您在 Geocoder 中使用 Zend Framework

它与 Zend Framework 2 和 3 的 Service Manager 仍然兼容。

要求

请参阅 composer.json 文件。

安装

运行以下 composer 命令

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

或者,手动将以下内容添加到您的 composer.json 文件的 require 部分

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

然后运行 composer update 以确保模块已安装。

最后,将模块名称添加到项目 config/application.config.php 下的 modules

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

或者依赖 Zend Component Installer 自动注入此模块

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

配置

config/zf.geocoder.local.php.dist 复制到 config/autoload 目录,并移除 dist 扩展名以开始配置。

使用

您可以检索 Geocoder 文档

以下将在此 Zend Framework 模块中处理设置和服务管理。

首先,请确保您已通过注释掉您想要使用的提供者设置好配置文件。

例如,在 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,
            ],
        ],
    ],
];

每个提供者都作为主 Service Manager 中的 服务 公开,遵循以下约定: Geocoder\<PROVIDER_NAME_IN_CAMELCASE> 此服务将是相应的 Geocoder\Provider\<PROVIDER_NAME_IN_CAMELCASE> 的实例,并在构造函数中传递适当的配置

例如,在您的控制器中

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

显然,这种调用是不良的实践。您应该考虑在专用服务中注入 Geocoder 服务,而不是从控制器中调用它

单元测试

确保安装了 dev 依赖项

composer install --dev

运行单元测试

composer test

代码风格检查

composer cs-check

检查两者

composer check