cxj/validate.address

简单的 USPS 网络API地址验证

0.1.1 2020-07-18 02:16 UTC

This package is auto-updated.

Last update: 2024-09-18 11:58:47 UTC


README

美国邮政服务(USPS)地址标准化网络工具纠正街道地址中的错误,包括缩写和缺失信息,并提供ZIP代码和ZIP+4代码。

此库提供了一个简单的接口来使用上述USPS API。

安装和自动加载

此包可通过Composer安装并作为cxj/validate.address自动加载。

或者,下载发行版,或克隆此存储库,然后将Cxj\ValidateAddress\命名空间映射到包的src/目录。

依赖项

此包需要PHP 7.4或更高版本。我们原则上推荐使用可用的最新PHP版本。

示例用法

<?php
$address = new Address(
    "8039 Beach Blvd",
    "",
    "Buena Park",
    "CA",
    "90620"
);

$user = YOUR_USER_NAME; // Obtained from the USPS website:
// https://www.usps.com/business/web-tools-apis/#developers

$validate = new ValidateAddress(new CurlPost($user), new DomParser());
$response = $validate->validate($address);

echo sprintf("Corrected ZIP+4 Code: %s-%s\n",
    $response->getAddress()->getZip5(),
    $response->getAddress()->getZip4()
);

用于使用的API主类是ValidateAddress,要验证或规范化的地址作为参数对象或值对象传递给验证方法本身。构造函数需要另外两个依赖项,由CommunicationInteface定义(该接口处理与USPS服务器的连接和交换),以及ResponseParserInterface(该接口处理从服务器解码XML响应)。

提供了三个CommunicationInterface的实现,使用PHP Curl扩展通过HTTP POST或GET发送地址请求,以及流套接字。

提供了两个ResponseParserInterface的实现。一个需要PHP DOM扩展,另一个需要PHP XML扩展。

质量

要在命令行运行单元测试,请输入composer install,然后在包根目录中执行./vendor/bin/phpunit。这需要Composer作为composer可用,以及PHPUnit作为phpunit可用。

此包试图遵守PSR-1PSR-2PSR-4。如果您注意到遵守上的疏忽,请通过pull request发送补丁。