Skip to content

Бандл для работы с API ДаДата.

License

Notifications You must be signed in to change notification settings

acvilev1/dadata-bundle

This branch is 6 commits ahead of, 1 commit behind Velhron/dadata-bundle:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7b75ad9 · Jun 11, 2024

History

76 Commits
Feb 15, 2024
Mar 25, 2022
Jul 2, 2020
Jan 19, 2023
Mar 25, 2022
Jul 2, 2020
Jan 20, 2021
Jun 11, 2024
Jan 20, 2021
Jul 9, 2020

Repository files navigation

Symfony DaData

Build Status

Описание

Symfony DaDataBundle предназначен для работы с API сервиса ДаДата.

Установка

Данный бандл может быть установлен с помощью Composer.

Приложения, которые используют Symfony Flex

Откройте командную консоль, перейдите в каталог вашего проекта и выполните:

composer require velhron/dadata-bundle

Приложения, которые не используют Symfony Flex

Шаг #1: Загрузка бандла

Откройте командную консоль, перейдите в каталог вашего проекта и выполните следующую команду, чтобы загрузить последнюю стабильную версию этого пакета:

composer require velhron/dadata-bundle

Шаг #2: Активация бандла

Включите пакет, добавив его в список зарегистрированных пакетов в файле app/AppKernel.php вашего проекта:

<?php
// app/AppKernel.php

// ...
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Velhron\DadataBundle\VelhronDadataBundle(),
        );

        // ...
    }

    // ...
}

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

Создайте файл конфигурации config/packages/dadata.yaml

Пример

velhron_dadata:
    token: 'token'
    secret: 'secret'
    # Если у вас инфраструктура состоит из n-сервисов, которые обращаются в dadata, то для контроля запросов в dadata
    # в одной точке, Вам возможно потребуется прокси-кеш. Для замены оригинальных url от dadata на Ваш прокси, можете
    # заполнить следующие необязательные параметры
    #base_general_url: 'https://proxy_dadata.ru/proxy/v2'
    #base_cleaner_url: 'https://cleaner.proxy_dadata.ru/proxy/v1/clean'
    #base_suggestions_url: 'https://suggestions.proxy_dadata.ru/suggestions/proxy/4_1/rs'

Использование

Прежде всего, необходимо подключить для работы нужный вам сервис. Например:

<?php

// ...

use Velhron\DadataBundle\Service\DadataSuggest;

class BaseController extends AbstractController
{
    private $dadataSuggest;

    public function __construct(DadataSuggest $dadataSuggest)
    {
        $this->dadataSuggest = $dadataSuggest;
    }
}

Всего сервисов - 5, а именно:

  1. DadataSuggest - подсказки
  2. DadataClean - стандартизация
  3. DadataGeolocate - обратное геокодирование
  4. DadataIplocate - город по IP-адресу
  5. DadataGeneral - остальные методы

Все доступные методы можно посмотреть в самих классах.

Дополнительные параметры обычно передаются вторым параметром в виде ассоциативного массива. Все параметры аналогичны тем, что указаны на сайте ДаДаты.

Например, подсказки по адресам:

$response = $dadataSuggest->suggestAddress('москва хабар', ['count' => 10]);
$address = $response[0]->value;

Подсказки по организациям:

$response = $dadataSuggest->suggestParty('сбербанк', ['count' => 2]);
$inn = $response[0]->inn;

Например, стандартизация ФИО:

$response = $dadataClean->cleanName('Срегей владимерович иванов');
$name = $response->result;

Например, адрес по координатам:

$response = $dadataGeolocate->geolocateAddress(55.878, 37.653);
$address = $response[0]->value;

Получение города по IP адресу:

$response = $dadataIplocate->iplocateAddress('46.226.227.20');
$city = $response->value;

Получение адреса по коду КЛАДР:

$response = $dadataSuggest->findAddress('77000000000268400');
$address = $response[0]->value;
$response = $dadataSuggest->findAffiliatedParty('7736207543');
$value = $response[0]->value;

Лицензия

MIT License © Velhron

About

Бандл для работы с API ДаДата.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%