astro-masters / dadata-bundle
DaData bundle for Symfony 8
Package info
github.com/astro-masters/dadata-bundle
Type:symfony-bundle
pkg:composer/astro-masters/dadata-bundle
Requires
- php: ^8.5
- ext-json: *
- symfony/config: ^8.0
- symfony/dependency-injection: ^8.0
- symfony/http-client: ^8.0
- symfony/http-client-contracts: ^3.0
- symfony/http-kernel: ^8.0
- symfony/yaml: ^8.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^12.5
- symfony/framework-bundle: ^8.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-13 06:16:11 UTC
README
Описание
Symfony DaDataBundle предназначен для работы с API сервиса ДаДата. Это форк Velhron/dadata-bundle для PHP 8.5 и Symfony 8.
Установка
Для работы нужны PHP 8.5 или новее в линейке 8.x и Symfony 8.x.
После публикации пакета на Packagist установите стабильную версию:
composer require astro-masters/dadata-bundle:^1.0
Если пакет ещё не появился в индексе Packagist, временно добавьте репозиторий форка в проект и установите ветку master:
composer config repositories.astro-masters-dadata vcs https://github.com/astro-masters/dadata-bundle composer require astro-masters/dadata-bundle:dev-master
Если в проекте установлен velhron/dadata-bundle, сначала выполните composer remove velhron/dadata-bundle: оба пакета используют одни PHP-классы.
После появления стабильной версии в Packagist удалите временную запись repositories из проекта и перейдите с dev-master на ^1.0.
Если бандл не зарегистрирован автоматически, добавьте его в config/bundles.php приложения:
<?php return [ Velhron\DadataBundle\VelhronDadataBundle::class => ['all' => true], ];
Конфигурация
Создайте файл конфигурации config/packages/velhron_dadata.yaml. До настройки бандла сервисы DaData не регистрируются, поэтому установка пакета и очистка кэша не требуют токена:
Пример
velhron_dadata: token: '%env(DADATA_TOKEN)%' secret: '%env(DADATA_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
Публикация
Первый релиз — v1.0.0. Пакет публикуется из форка Astro Masters на Packagist. Перед следующими выпусками проверяйте тесты на PHP 8.5 и Symfony 8.x, отправляйте новый тег в origin и проверяйте обновление Packagist. PHP namespace Velhron\DadataBundle сохранён для совместимости с существующим кодом.