velhron / dadata-bundle
DaData for Symfony
Installs: 49 274
Dependents: 0
Suggesters: 0
Security: 0
Stars: 20
Watchers: 2
Forks: 12
Open Issues: 1
Type:symfony-bundle
Requires
- php: ^7.1|^8.0
- ext-json: *
- symfony/config: ^4.4|^5.0|^6.0|^7.0
- symfony/dependency-injection: ^4.4|^5.0|^6.0|^7.0
- symfony/http-client: ^4.4|^5.0|^6.0|^7.0
- symfony/http-kernel: ^4.4|^5.0|^6.0|^7.0
- symfony/yaml: ^4.4|^5.0|^6.0|^7.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- phpstan/phpstan: ^0.12.25
- symfony/phpunit-bridge: ^4.4|^5.0|^6.0|^7.0
README
Описание
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, а именно:
DadataSuggest
- подсказкиDadataClean
- стандартизацияDadataGeolocate
- обратное геокодированиеDadataIplocate
- город по IP-адресуDadataGeneral
- остальные методы
Все доступные методы можно посмотреть в самих классах.
Дополнительные параметры обычно передаются вторым параметром в виде ассоциативного массива. Все параметры аналогичны тем, что указаны на сайте ДаДаты.
API подсказок
Например, подсказки по адресам:
$response = $dadataSuggest->suggestAddress('москва хабар', ['count' => 10]); $address = $response[0]->value;
Подсказки по организациям:
$response = $dadataSuggest->suggestParty('сбербанк', ['count' => 2]); $inn = $response[0]->inn;
API стандартизации
Например, стандартизация ФИО:
$response = $dadataClean->cleanName('Срегей владимерович иванов'); $name = $response->result;
Обратное геокодирование
Например, адрес по координатам:
$response = $dadataGeolocate->geolocateAddress(55.878, 37.653); $address = $response[0]->value;
Город по IP-адресу
Получение города по 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