Search by

astro-masters / dadata-bundle

st.dremin

DaData bundle for Symfony 8

Package info

github.com/astro-masters/dadata-bundle

Type:symfony-bundle

pkg:composer/astro-masters/dadata-bundle

Statistics

Installs: 13

Dependents: 0

Suggesters: 0

Stars: 0

v1.0.1 2026-10-13 06:15 UTC

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, а именно:

  1. DadataSuggest - подсказки
  2. DadataClean - стандартизация
  3. DadataGeolocate - обратное геокодирование
  4. DadataIplocate - город по IP-адресу
  5. 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 сохранён для совместимости с существующим кодом.