PHPackages                             lowel/gar-address-verification-api - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. lowel/gar-address-verification-api

ActiveProject

lowel/gar-address-verification-api
==================================

GAR BD FIAS uploader and real web api example for address verification

0.1.0(3y ago)32[1 PRs](https://github.com/1ovve1/gar-address-verification-api/pulls)PHP

Since Oct 31Pushed 3y ago1 watchersCompare

[ Source](https://github.com/1ovve1/gar-address-verification-api)[ Packagist](https://packagist.org/packages/lowel/gar-address-verification-api)[ RSS](/packages/lowel-gar-address-verification-api/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (12)Versions (3)Used By (0)

Сервис верификации адресной информации на основе ГАР БД ФИАС
============================================================

[](#сервис-верификации-адресной-информации-на-основе-гар-бд-фиас)

### Описание

[](#описание)

Данный сервис включает в себя:

- Средства для создания и организации локальной БД, используя исходники ГАР БД ФИАС;
- Реализацию простого RESTful-сервиса, осуществляющего верификацию пользовательских адресных данных или получения специальных кодов.

### Конфигурирование проекта

[](#конфигурирование-проекта)

Проект использует файл ".env" для получения глобальных конфигурационных переменных. Пример файла конфигурации представлен в файле "./env.example".

Используйте следующую команду перед настройкой проекта:

```
cp ./.env.example ./.env
```

Более "комплесные" настройки представленны в директории "./config/", в числе которых:

- ***drivers/***\* - основные шаблоны, согласно которым функционирует конструктор SQL-запросов;
- ***migration.php*** - списки классов-моделей, которые подлежат миграции;
- ***regions.php*** - список регионов, которые необходимо загрузить из исходников ГАР БД ФИАС;
- ***xml\_handlers\_config.php*** - список обработчиков, осуществляющих парсинг xml-документов архива ГАР БД ФИАС;

Если вы используете сервис для загрузки данных из ГАР БД ФИАС в локальную БД, необходимо **разместить архив по пути ./resources/archive/gar\_example.zip** или указать собственные пути в файле конфигурации .env!

### Взаимодействие с помощью командной строки

[](#взаимодействие-с-помощью-командной-строки)

Для взаимодействия с сервисом используется следующий интерфейс:

```
./gar  [параметры]
```

Основные наборы команд:

- Получение справки по существующему функционалу:

```
./gar help
```

- Миграция и загрузка данных в локальную БД:

```
./gar upload -m
```

- Пересоздать текущую структуру базы данных и начать загрузку 8-го и 17-го региона, используя два потока:

```
./gar upload --migrate-recreate -r 8,17 -t 2
```

- Запустить сервер в (зависимости от конфигурационного файла будет запущен встроенный тестовый сервер php или SWOOLE):

```
./gar serve
```

### Структура базы данных по умолчанию

[](#структура-базы-данных-по-умолчанию)

[![Структура базы данных](docs/img/scheme_08_10_22.png)](docs/img/scheme_08_10_22.png)На 08.10.22 производиться формаирование следующих таблиц:

- Адресные объекты:
    - ***addr\_obj*** - адресные объекты;
    - ***addr\_obj\_levels*** - категории адресных объектов по их уровням;
    - ***addr\_obj\_typenames*** - категории адресных объектов по типу (город, район, улица и т.п.);
    - ***addr\_obj\_params*** - таблица с описанием параметров для конкретного адресного объекта;
    - ***addr\_obj\_params\_types*** - категории параметров адресных объектов;
    - ***addr\_obj\_by\_addr\_obj\_hierarchy*** - иерархия адресных объектов в формате master "родитель" =&gt; "ребёнок"
- Дома:
    - ***houses*** - дома;
    - ***houses\_type*** - категории домов по их типу;
    - ***houses\_addtype*** - дополнительные категории домов по их типу;
    - ***houses\_by\_addr\_obj\_hierarchy*** - карта домов, относящихся к конкретных адресных объектам;

### Демонстрационный REST API сервис

[](#демонстрационный-rest-api-сервис)

Демонстрационный сервис в проекте расчитан на работу с использованием фреймворка SWOOLE, но ничего не мешает Вам отключить эту опцию SWOOLE\_SERVER\_ENABLE в .env файле и использовать NGINX или APACHE через точку входа **./public/index.php**.

Ожидаемые запросы:

- Разбор пользовательского адреса:

```
//address?address="..."

```

- Получение кода (или всех кодов, используя тип "all") по конкретному OBJECTID или АДРЕСУ:

```
//code/?address="..."  (по адресу)
//code/?&objectid="..." (по objectid)

```

Пример запроса для получения верифицированного адреса из "калм,лаганс,кра,кра" в 8 регионе:

```
http://0.0.0.0:9501/08/address?address=калм,лаганс,кра,кра

```

Ответ:

[![Ответ на http://0.0.0.0:9501/08/address?address=калм,лаганс,кра,кра](docs/img/json_response_1.png)](docs/img/json_response_1.png)

Пример запроса для получения всех доступных кодов по аналогичному адресу:

```
http://0.0.0.0:9501/08/code/all?address=калм,лаганс,кра,кра

```

Формат JSON-ответа:

[![Ответ на http://0.0.0.0:9501/08/code/all?address=калм,лаганс,кра,кра](docs/img/json_response_2.png)](docs/img/json_response_2.png)

Аналогичный ответ можно получить, используя objectid последнего объекта:

```
http://0.0.0.0:9501/08/code/all?objectid=114436

```

### Конфигурирование

[](#конфигурирование)

Перменные самой среды должны быть объявлены в .env файле согласно .env.example.

Конфигурация загрузчика ГАР и миграций определены в директории ./config:

```
./config
├── migration.php [описание миграций]
├── regions.php   [список регионов]
└── xml_handlers_config.php [список обработчиков]
```

Обработчики представлены по пути ./cli/XMLParser/Files в двух директориях:

- ByRegions - те файлы, которые требуется обработать для каждого региона;
- ByRoot - те файлы, которые требуется обработать единожды (корневые файлы описаний).

Имена обработчиков соответствуют префиксу имен файлов в самом архиве. На данный момент реализованны следующие обработчики:

```
cli/XMLParser/Files/
├── ByRegions
│   ├── AS_ADDR_OBJ_PARAMS.php
│   ├── AS_ADDR_OBJ.php
│   ├── AS_ADM_HIERARCHY.php
│   ├── AS_HOUSES.php
│   └── AS_MUN_HIERARCHY.php
├── ByRoot
    ├── AS_ADDHOUSE_TYPES.php
    ├── AS_ADDR_OBJ_TYPES.php
    ├── AS_HOUSE_TYPES.php
    ├── AS_OBJECT_LEVELS.php
    └── AS_PARAM_TYPES.php
```

### Тесты

[](#тесты)

Интеграционные тесты находятся по пути *./tests*. Файл конфигурации phpunit заранее определён, так что запуск тестов можно осуществлять вызовом *./vendor/bin/phpunit*. Для проверки необходимо загрузить базу через *./cli upload* и иметь подключение к бд.

*!!ВНИМАНИЕ!!*: тесты привязаны к контексту и проверяют функционал приложения на основе действующих данных из 8-го региона (Калмыкия). Тестовый набор данных можно загрузить из [следующего репозитория](https://github.com/1ove1/gar-example) (если нет желания скачивать полный архив на 30гб+).

### Заключение

[](#заключение)

Сервис всё ещё дорабатывается, данный readme скорее заглушка, но всё же это лучше чем голый репозиторий)

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity37

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1287d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3d110b35da8c87d6303de59bdc352469c2b52c288091dd974beebf464c763fc8?d=identicon)[1ove1](/maintainers/1ove1)

---

Top Contributors

[![l0w3l](https://avatars.githubusercontent.com/u/83027906?v=4)](https://github.com/l0w3l "l0w3l (215 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/lowel-gar-address-verification-api/health.svg)

```
[![Health](https://phpackages.com/badges/lowel-gar-address-verification-api/health.svg)](https://phpackages.com/packages/lowel-gar-address-verification-api)
```

###  Alternatives

[phlak/directory-lister

PHP directory lister

2.5k1.4k](/packages/phlak-directory-lister)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.2M386](/packages/shopware-core)[pressbooks/pressbooks

Pressbooks is an open source book publishing tool built on a WordPress multisite platform. Pressbooks outputs books in multiple formats, including PDF, EPUB, web, and a variety of XML flavours, using a theming/templating system, driven by CSS.

44643.1k1](/packages/pressbooks-pressbooks)[lucatacconi/crunz-ui

User interface for lavary/crunz. Integrate Crunz library and funtions: Tabular, monthly or weekly interface to view the scheduled and executed tasks. Quick display of the execution result of the tasks that have been executed (Indicator icons easily show the result). Upload, download, edit or delete tasks. Forced run of the task, even outside the scheduled time with eventual display of the log once the execution is completed. It can be used with integrated Crunz or with a version of Crunz already installed on the system

161.5k](/packages/lucatacconi-crunz-ui)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
