承接 tochka-developers/unification-address 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

tochka-developers/unification-address

Composer 安装命令:

composer require tochka-developers/unification-address

包简介

Splitting the postal address of the Russian Federation into parts

README 文档

README

Реализация парсинга адреса РФ на составные части для Laravel. На данный момент парсинг делается с помощью апи Почты России и апи сервиса DaData (стандартизация). Результаты запросов кешируются, управление через настройки кеширования Laravel.

Поддерживаемые версии:

  • Laravel | Lumen >= 5.0
  • PHP 7.4 | 8.0

Установка

Установка через composer:

composer require tochka/unification-address

Публикуем конфигурацию для всех пакетов:

php artisan vendor:publish

Для Lumen нужно самостоятельно подключить UnifAddressServiceProvider

Конфигурация

return [
    // Предфильтр для предварительной обработки строки адреса по кастомным правилам.
    // По-умолчанию не производится. Можно реализовать на стороне внешнего сервиса.
    // Должен реализовать интерфейс Tochka\Unif\Address\Contracts\PreFilterInterface
    'pre_filter_handler' => null /*\App\Service\AddressPreFilter::class*/,
    // Список источников обработки строки адреса. Адрес парсится последовательно, до первого успешного результата.
    // Если ни один из источников не дал приемлемого результата - вернется null.
    'processing_sources' => [
        // Класс можно отнаследовать или реализовать свой. При самостоятельной реализации источника
        // обработки класс нужно реализовать от интерфейса Tochka\Unif\Address\Contracts\SourceInterface
        \Tochka\Unif\Address\Sources\RusPost::class => [
            // Здесь нужно передавать авторизационные данные источника
            'token' => env('RusPost_ACCESS_TOKEN'),
            'user'  => env('RusPost_USER'),
            'pass'  => env('RusPost_PASS'),
        ], 
        \Tochka\Unif\Address\Sources\DaData::class => [
            // Здесь нужно передавать авторизационные данные источника
            'token' => env('DADATA_TOKEN'),
            'secret' => env('DADATA_SECRET')
        ]
    ]
];

Пример

$address = '115114  Москва г. наб. Дербеневская, д. 11 к А - 311';
$enrichedAddress = app(UnifAddress::class)->parsing($address);

В $enrichedAddress возвращается массив, разбитого по частям, адреса

[
  "postindex" => "115114" // почтовый индекс
  "region" => "г Москва" // регион, область, край, республика
  "area" => null // район в регионе
  "city" => "Москва" // город, населенный пункт
  "isSettlement" => false // Признак населенного пункта (пгт, деревня, село, хутор)
  "address" => "наб Дербеневская, д 11А" // адрес
  "street" => "наб Дербеневская" // улица
  "house" => "11А" // номер дома
  "block" => null // корпус/строение
  "flat" => null // квартира/офис
  "unparsed" => "311" // нераспознанная часть адреса
  "quality" => "good" // Качество распознавания адреса: good - доп. обработка не требуется, need_check - нужна проверка
]

统计信息

  • 总下载量: 7
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 4
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-01-16

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固