mrcnpdlk/teryt-api

Teryt WS1 Api

1.1.0 2024-01-22 10:17 UTC

This package is auto-updated.

Last update: 2024-12-22 12:05:29 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 - Polish address database

Installation

Install the latest version with composer

composer require mrcnpdlk/teryt-api

Basic usage

Cache

Library supports Cache bundles based on PSR-16 standard.

For below example was used phpfastcache/phpfastcache. phpfastcache/phpfastcache supports a lot of endpoints, i.e. Files, Sqlite, Redis and many other. More information about using cache and configuration it you can find in this Wiki.

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

Log

Library also supports logging packages based on PSR-3 standard, i.e. very popular 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 Authentication

Service TERYT WS1 shares API based on SOAP Protocol. More information about service you can find on this site There are two ways to connect to the server:

  • production database - you need login/password
  • testing database - default authentication with default login/password pair

First of all we need configure connection calling setTerytConfig() method and optionally set cache and log instances

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);

After that we able to call auxiliary static methods defined in NativeApi class, i.e:

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

Defined methods (\mrcnpdlk\Teryt\NativeApi)

Almost all methods from official documentation have been mapped and defined.

Full list below \mrcnpdlk\Teryt\NativeApi:

General

Catalog TERC

Catalog NTS

Catalog ULIC

Catalog SIMC

Dictionary

Catalog

Changes

Verification

Search

Defined methods (\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
                        )
                )
        )
)