mrcnpdlk/teryt-api

1.1.0 2024-01-22 10:17 UTC

This package is auto-updated.

Last update: 2024-09-22 11:41:20 UTC


README

Latest Stable Version Latest Unstable Version Total Downloads Monthly Downloads License

Scrutinizer Code Quality Build Status Code Coverage

Code Climate Issue Count

Dependency Status

TERYT WS1 API - 波兰地址数据库

安装

使用 composer 安装最新版本

composer require mrcnpdlk/teryt-api

基本用法

缓存

库支持基于 PSR-16 标准的缓存包。

以下示例使用了 phpfastcache/phpfastcachephpfastcache/phpfastcache 支持许多端点,例如 FilesSqliteRedis 以及许多其他。有关缓存使用和配置的更多信息,请参阅此 Wiki

    /**
     * Cache in system files
     */
    $oInstanceCacheFiles = new \phpFastCache\Helper\Psr16Adapter('files');

日志

库还支持基于 PSR-3 标准的日志包,例如非常流行的 monolog/monolog

$oInstanceLogger = new \Monolog\Logger('name_of_my_logger');
$oInstanceLogger->pushHandler(new \Monolog\Handler\ErrorLogHandler(
        \Monolog\Handler\ErrorLogHandler::OPERATING_SYSTEM,
        \Psr\Log\LogLevel::DEBUG
    )
);

Teryt 认证

TERYT WS1 服务基于 SOAP 协议 提供 API。有关服务的更多信息,请参阅此 网站。有两种方式连接到服务器:

  • 生产数据库 - 您需要登录名/密码
  • 测试数据库 - 默认认证使用默认登录名/密码对

首先,我们需要调用 setTerytConfig() 方法配置连接,并可选地设置缓存和日志实例

use mrcnpdlk\Teryt\Client;
use mrcnpdlk\Teryt\NativeApi;
use mrcnpdlk\Teryt\Config;

$oConfig = new Config([
    'logger'       => $oInstanceLogger,
    'cache'        => $oInstanceCacheFiles,
    'username'     => 'my_login',
    'password'     => 'my_password',
    'isProduction' => true,
]);
$oNativeApi = NativeApi::create($oConfig);

然后,我们能够调用 NativeApi 类中定义的辅助静态方法,例如

var_dump($oNativeApi->CzyZalogowany());
var_dump($oNativeApi->PobierzSlownikCechULIC());
var_dump($oNativeApi->WyszukajMiejscowosc('skiernie',null));

定义的方法 (\mrcnpdlk\Teryt\NativeApi)

几乎所有的官方文档中的方法都已映射和定义。

以下为 \mrcnpdlk\Teryt\NativeApi 的完整列表

通用

TERC 目录

NTS 目录

ULIC 目录

SIMC 目录

字典

目录

变更

验证

搜索

定义的方法 (\mrcnpdlk\Teryt\Api)

$oApi = new \mrcnpdlk\Teryt\Api($oClient);
print_r($oApi->getCity('0700884'));
mrcnpdlk\Teryt\Model\City Object
(
    [id] => 0700884
    [parentId] => 0700884
    [rmId] => 01
    [rmName] => wieś
    [name] => Burzenin
    [commune] => mrcnpdlk\Teryt\Model\Commune Object
        (
            [id] => 101414
            [tercId] => 1014052
            [name] => Burzenin
            [typeId] => 2
            [typeName] => gmina wiejska
            [district] => mrcnpdlk\Teryt\Model\District Object
                (
                    [id] => 1014
                    [name] => sieradzki
                    [typeName] => powiat
                    [province] => mrcnpdlk\Teryt\Model\Province Object
                        (
                            [id] => 10
                            [name] => ŁÓDZKIE
                        )
                )
        )
)