aternus / geonames-client
GeoNames API 客户端
2.4.0
2024-06-09 21:04 UTC
Requires
- php: >=7.2.0
- ext-curl: *
- ext-json: *
- ext-xml: *
- guzzlehttp/guzzle: 7.*
Requires (Dev)
- ext-xdebug: *
- phpunit/phpunit: 8.*
- slevomat/coding-standard: ^8.15
- squizlabs/php_codesniffer: 3.*
README
PHP 的 GeoNames API 客户端。
安装有信心 🛡️
- 支持的操作系统:Linux、macOS 和 Windows。
- 支持的 PHP 版本:7.2 及以上。
快速入门
每个端点的可用 API 参数概述在此处可获得。
<?php use GeoNames\Client as GeoNamesClient; $g = new GeoNamesClient('username'); // get a list of supported endpoints $endpoints = $g->getSupportedEndpoints(); // get info for country // note that I'm using the array destructor introduced in PHP 7.1 [$country] = $g->countryInfo([ 'country' => 'IL', 'lang' => 'ru', // display info in Russian ]); // country name (in Russian) $country_name = $country->countryName; // spoken languages (ISO-639-1) $country_languages = $country->languages;
客户端选项
支持的客户端选项
username
:GeoNames 用户名。token
:GeoNames 令牌(即高级用户密钥)。api_url
:GeoNames 网络服务的 URL。connect_timeout
:HTTP 客户端连接超时。尝试连接到服务器时等待的秒数(默认0
,无限期等待)。fallback_api_url
:即将推出。fallback_api_url_trigger_count
:即将推出。
示例:在实例化时提供选项
$g = new GeoNamesClient('username', '', ['api_url' => 'https://custom-premium.geonames.org']);
示例:在运行时更改选项
$g = new GeoNamesClient('username'); $g->setOptions(['api_url' => 'https://custom-premium.geonames.org'])
为什么?
这个库将使您能够更好地了解世界。
作为一名开发人员和多语言演讲者,我一直觉得本地化被放在最后优先级,因为它是如此耗时且容易出错。
获取每个国家的统计数据是一个痛苦的过程,需要了解不同的 ISO 标准,即使如此,你仍然需要自己拼凑拼图。
幸运的是,GeoNames 在过去几十年中一直在收集关于世界的统计数据,并通过其 API 提供这些数据。
本库的目的是提供一个关于国家 (ISO-3166)、语言 (ISO-639-1) 和其他区域相关统计数据的单一来源,以便其他开发人员可以编写更好的软件,使其与世界最新的变化保持一致。
安装
如果您使用 Composer 来管理依赖项
composer require aternus/geonames-client
那么,在运行 composer update
之后,您可以使用 Composer 的自动加载来加载类
require 'vendor/autoload.php';
否则,您可以简单地直接引入文件
require_once 'vendor/aternus/geonames-client/src/Client.php';
在任一情况下,我都建议使用别名。
use GeoNames\Client as GeoNamesClient;
其他有用的库
请确保实现某种缓存机制,以节省时间、带宽,并对 GeoNames 提供所有这些免费数据表示尊重。
如果您大量使用统计数据,您可以订阅他们的高级数据计划。
许可证
在 MIT 许可证下发布 - 详细信息请参阅 LICENSE.md
。
致谢
David Jean Louis,他启发了这个 GeoNames API 客户端。