mb-tec / zf-geocoder
Zend Framework 地理编码服务模块
Requires
- php: ^7.0 || ^7.1
- geocoder-php/common-http: ^4.1
- guzzlehttp/psr7: ^1.4
- php-http/curl-client: ^1.7
- php-http/httplug-bundle: ^1.13
- willdurand/geocoder: ^4.2
- zendframework/zend-diactoros: ^2.0
Requires (Dev)
- phpunit/phpunit: ~5.5
- squizlabs/php_codesniffer: ~2.3.4
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