sanmai / pindx-client
Клиент для API справочника почтовых индексов России
Installs: 19 668
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 0
Open Issues: 0
Requires
- php: ^7.4 || ^8.0
- doctrine/annotations: ^2.0
- guzzlehttp/guzzle: ^6.3 || ^7
- jms/serializer: ^1.14 || ^2.3 || ^3.8
Requires (Dev)
- ergebnis/composer-normalize: ^2.8
- friendsofphp/php-cs-fixer: ^3
- php-coveralls/php-coveralls: ^2.4
- phpunit/phpunit: >=6
- psalm/phar: ^4.8
README
Клиент для API почтовых индексов
Установка делается как обычно.
composer require sanmai/pindx-client
Получение данных отделения используя JSON API
$client = new \RussianPostIndex\Client(); $office = $client->getOffice(101000);
Возвращает или объект имплементирующий интерфейс Record
, или, если такого отделения нет, null
. Нет необходимости как-то отдельно проверять корректность индекса. Если индекса в БД нет, то вернётся null
.
Конструктор класса \RussianPostIndex\Client
опционально берёт на вход стандартный интерфейс клиента Guzzle, что позволяет добавить подключение через прокси или поменять используемый сервер, поднять таймауты для соединения.
Пример использования
<?php require 'vendor/autoload.php'; $postalCode = 130980; $client = new \RussianPostIndex\Client(); if ($office = $client->getOffice($postalCode)) { var_dump($office->getIndex()); // int(130980) var_dump($office->getName()); // string(25) "Москва EMS ММПО" var_dump($office->getType()); // string(8) "ММПО" var_dump($office->getSuperior()); // int(104040) var_dump($office->getRegion()); // string(12) "Москва" var_dump($office->getAutonomousRegion()); // string(0) "" var_dump($office->getArea()); // string(0) "" var_dump($office->getCity()); // string(0) "" var_dump($office->getDistrict()); // string(0) "" var_dump($office->getDate()->format('Y-m-d')); // string(10) "2017-04-28" }
Описание методов
Интерфейс объекта содержит следующие методы для получения данных об отделении:
/** * Почтовый индекс объекта почтовой связи в соответствии с действующей системой индексации. */ $office->getIndex(); /** * Наименование объекта почтовой связи. */ $office->getName(); /** * Тип объекта почтовой связи. */ $office->getType(); /** * Индекс вышестоящего по иерархии подчиненности объекта почтовой связи. */ $office->getSuperior(); /** * Наименование области, края, республики, в которой находится объект почтовой связи. */ $office->getRegion(); /** * Наименование автономной области, в которой находится объект почтовой связи. */ $office->getAutonomousRegion(); /** * Наименование района, в котором находится объект почтовой связи. */ $office->getArea(); /** * Наименование населенного пункта, в котором находится объект почтовой связи. */ $office->getCity(); /** * Наименование подчиненного населенного пункта, в котором находится объект почтовой связи. */ $office->getDistrict(); /** * Дата актуализации информации об объекте почтовой связи. * @return DateTimeInterface */ $office->getDate();
Что за pindx?
Потому что так называются исходные файлы от почты. Конечно, они называются используя смешанный регистр, PIndx, но в именах пакетов в Composer не рекомендуется использовать такой формат. Потому pindx
.