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. [Validation &amp; Sanitization](/categories/validation)
4. /
5. lowel/gar-address-verification-api

ActiveProject[Validation &amp; Sanitization](/categories/validation)

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

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

0.1.0(3y ago)32[1 issues](https://github.com/1ovve1/gar-address-verification-api/issues)[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 today

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

18

—

LowBetter than 8% of packages

Maintenance13

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity38

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

1341d 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

[laravel/framework

The Laravel Framework.

34.8k543.8M20.1k](/packages/laravel-framework)[tempest/framework

The PHP framework that gets out of your way.

2.2k34.4k15](/packages/tempest-framework)[showdoc/showdoc

ShowDoc is a tool greatly applicable for an IT team to share documents online

12.8k7.1k](/packages/showdoc-showdoc)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M574](/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.

45444.2k1](/packages/pressbooks-pressbooks)[phlak/directory-lister

PHP directory lister

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

PHPackages © 2026

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