mb-tec/zf-geocoder

此软件包已被放弃,不再维护。未建议替代软件包。

Zend Framework 地理编码服务模块

dev-master / 2.0.x-dev 2018-11-24 00:49 UTC

This package is not auto-updated.

Last update: 2023-03-19 11:12:05 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 扩展名以启动配置。

使用

您可以检索地理编码文档

以下将在此 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');
    /* ... */
}

显然,这种调用是坏做法。您应该考虑在专用服务中注入地理编码服务,而不是从控制器中调用它

单元测试

确保已安装 dev 依赖项

composer install --dev

运行单元测试

composer test

代码样式检查

composer cs-check

检查两者

composer check