sedovsg/fias-dbf

Библиотека для работы с базой данных DBF ФИАС РФ

1.0.0 2019-04-30 20:21 UTC

This package is auto-updated.

Last update: 2024-04-29 04:00:22 UTC


README

Packagist Latest Stable Version License Build Status Codecov Total Downloads

Библиотека для работы с базой данных DBF, получения и обновления данных в формате DBF от Федеральной информационной адресной системы Российской Федерации, которая проста в использовании.

Государственный адресный реестр – это государственный базовый информационный ресурс, содержащий сведения об адресах и реквизитах документов о присвоении, об изменении, аннулировании адреса, путём чтения и разбора файлов DBF

Источник данных: https://fias.nalog.ru/Updates.aspx

Требования

  • php-dbase >= 7.0 (PECL)
  • php-rar >= 7.1 (PECL)

Установка пакета PECL

$ sudo pecl install package_name;
$ echo "extension=/usr/lib/php/20170718/package_name.so" | sudo tee /etc/php/7.2/mods-available/package.ini;
$ sudo ln -s /etc/php/7.2/mods-available/package_name.ini /etc/php/7.2/cli/conf.d/;
$ sudo ln -s /etc/php/7.2/mods-available/package_name.ini /etc/php/7.2/apache2/conf.d/

Установка

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

$ composer require sedovsg/fias-dbf

Как установить сам Сomposer

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

Структура и описание DBF-файлов: Руководство пользователя ФИАС РФ

Подключение к источнику данных

use Fias\Dbf;

$dbf = (new Dbf('dir_name'));

Получение всех элементов

$result = $dbf->
  select()->
  from('STRSTAT.DBF')->
  exect()->
  fetchAll();

Получение бщего количества элементов в источнике

  $result = $dbf->
      select()->
      from('STRSTAT.DBF')->
      exect()->
      rowCount();

Получение информации о свойствах полей источника

  $result = $dbf->
      select()->
      from('FLATTYPE.DBF')->
      exect()->
      getFieldsInfo();

Получение количества полей источника

  $result = $dbf->
      select()->
      from('ACTSTAT.DBF')->
      exect()->
      numFields();

Получение полей источника

  $result = $dbf->
      select()->
      from('FLATTYPE.DBF')->
      exect()->
      getFields();

Фильтрация данных

Выборка данных по условию "Равно"

  $result = $dbf->
      select()->
      from('STRSTAT.DBF')->
      equal('STRSTATID = 2, NAME = Литер')->
      exect()->
      fetch();

Выборка данных по условию "Исключено"

  $result = $dbf->
      select()->
      from('STRSTAT.DBF')->
      exclude('STRSTATID = 1')->
      exect()->
      fetch();

Выборка данных по условию "Включает"

  $result = $dbf->
      select()->
      from('ESTSTAT.DBF')->
      include('NAME = Гараж')->
      exect()->
      fetch();

Методы установки полей select() и фильтрации данных equal(), exclude(), include() можно использовать несколько раз, через цепочку вызовов, например:

  $result = $dbf->
      select('STRSTATID, NAME')->
      select('SHORTNAME')->
      from('STRSTAT.DBF')->
      include('STRSTATID = 2')->
      exclude('STRSTATID = 1')->
      exect()->
      fetch();

Кроме того, можно указать данные какого фильтра будут включены в итоговую выборку:

  $result = $dbf->
      select('STRSTATID, NAME')->
      select('SHORTNAME')->
      from('STRSTAT.DBF')->
      include('STRSTATID = 2')->
      exclude('STRSTATID = 1')->
      exect()->
      fetch(Dbf::FETCH_INCLUDE);

Загрузка архива DBF с сайта ФИАС РФ

$dbf->download();

Обновление DBF-файлов в директории

$dbf->update();

Закрытие соединения с источником

$dbf->сlose();

Журнал Изменений

Пожалуйста, смотрите список изменений для получения дополнительной информации о том, что изменилось в последнее время.

Тестирование

$ vendor/bin/phpunit

Лицензия

Лицензия BSD 3-Clause. Пожалуйста, см. файл лицензии для получения дополнительной информации.