aternus/geonames-client

GeoNames API 客户端

2.4.0 2024-06-09 21:04 UTC

This package is auto-updated.

Last update: 2024-09-09 21:40:37 UTC


README

PHP 的 GeoNames API 客户端。

validate

安装有信心 🛡️

  • 支持的操作系统: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;

客户端选项

支持的客户端选项

  1. username:GeoNames 用户名。
  2. token:GeoNames 令牌(即高级用户密钥)。
  3. api_url:GeoNames 网络服务的 URL。
  4. connect_timeout:HTTP 客户端连接超时。尝试连接到服务器时等待的秒数(默认 0,无限期等待)。
  5. fallback_api_url:即将推出。
  6. 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 客户端。