Download the PHP package liquetsoft/fias-symfony without Composer
On this page you can find all versions of the php package liquetsoft/fias-symfony. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download liquetsoft/fias-symfony
More information about liquetsoft/fias-symfony
Files in liquetsoft/fias-symfony
Package fias-symfony
Short Description Symfony bundle for FIAS database importer.
License MIT
Informations about the package fias-symfony
ФИАС bundle
Бандл symfony для установки данных из ФИАС.
Для установки ФИАС используются xml-файлы, ссылки на которые предоставляются SOAP-сервисом информирования ФИАС.
Установка
Бандл устанавливается с помощью composer
и следует стандартной структуре, поэтому на symfony >=4.2
устанавливается автоматически.
-
Установить пакет с помощью composer:
-
В силу огромных размеров данных ФИАС, сущности
Doctrine
не регистрируются сразу в проекте. Для каждой предоставленMappedSuperclass
, с помощью которого можно получать обновления полей исключительно для тех сущностей, которые требуются проекту. Кроме того, это позволит дополнить или изменить структуру таблиц. Например, для добавления списка адресов:Список доступных суперклассов:
Liquetsoft\Fias\Symfony\LiquetsoftFiasBundle\Entity\AddrObj
Liquetsoft\Fias\Symfony\LiquetsoftFiasBundle\Entity\AddrObjDivision
Liquetsoft\Fias\Symfony\LiquetsoftFiasBundle\Entity\AddrObjTypes
Liquetsoft\Fias\Symfony\LiquetsoftFiasBundle\Entity\AdmHierarchy
Liquetsoft\Fias\Symfony\LiquetsoftFiasBundle\Entity\Apartments
Liquetsoft\Fias\Symfony\LiquetsoftFiasBundle\Entity\ApartmentTypes
Liquetsoft\Fias\Symfony\LiquetsoftFiasBundle\Entity\Carplaces
Liquetsoft\Fias\Symfony\LiquetsoftFiasBundle\Entity\ChangeHistory
Liquetsoft\Fias\Symfony\LiquetsoftFiasBundle\Entity\Houses
Liquetsoft\Fias\Symfony\LiquetsoftFiasBundle\Entity\HouseTypes
Liquetsoft\Fias\Symfony\LiquetsoftFiasBundle\Entity\MunHierarchy
Liquetsoft\Fias\Symfony\LiquetsoftFiasBundle\Entity\NormativeDocs
Liquetsoft\Fias\Symfony\LiquetsoftFiasBundle\Entity\NormativeDocsKinds
Liquetsoft\Fias\Symfony\LiquetsoftFiasBundle\Entity\NormativeDocsTypes
Liquetsoft\Fias\Symfony\LiquetsoftFiasBundle\Entity\ObjectLevels
Liquetsoft\Fias\Symfony\LiquetsoftFiasBundle\Entity\OperationTypes
Liquetsoft\Fias\Symfony\LiquetsoftFiasBundle\Entity\Param
Liquetsoft\Fias\Symfony\LiquetsoftFiasBundle\Entity\ParamTypes
Liquetsoft\Fias\Symfony\LiquetsoftFiasBundle\Entity\ReestrObjects
Liquetsoft\Fias\Symfony\LiquetsoftFiasBundle\Entity\Rooms
Liquetsoft\Fias\Symfony\LiquetsoftFiasBundle\Entity\RoomTypes
Liquetsoft\Fias\Symfony\LiquetsoftFiasBundle\Entity\Steads
-
Отдельно следует создать сущность для управления версиями ФИАС, установленными на проекте, которая используется для обновления:
-
После создания всех сущностей, следует создать соответствующие им миграции, и применить их:
-
Необходимо указать бандлу какие именно сущности используются (те сущности, для которых не указан класс конвертации использоваться не будут) и в какие объекты конвертируются (важно понимать, что сущность на стороне проекта может быть любой, даже не унаследованной от одного из суперклассов, стандартный сериализатор symfony попробует преобразовать xml в указанный объект):
- Поскольку для записи в БД используется
Doctrine
, нужно отключить логгирование запросов, иначе скрипт падает с переполнением памяти:
Использование
Бандл определяет несколько значимых команды консоли:
-
Установка ФИАС с ноля
-
Обновление ФИАС через дельту (установка запускается только в первый раз, а обновление следует поставить в качестве задачи для
cron
) -
Текущий статус серверов ФИАС (сервис информирования или сервер с файлами могут быть недоступны по тем или иным причинам)
-
Список доступных для установки и обновления версий ФИАС
-
Загрузка и распаковка архива с полной версией ФИАС
-
Установка ФИАС из указанного каталога
-
Обновление ФИАС из указанного каталога
- Принудительная установка номера текущей версии ФИАС
Производительность
Есть несколько возможностей ускорить импорт, используя настройки бандла:
-
убрать неиспользуемые сущности; к примеру, если информация о парковочных местах не требуется, то можно отключить соответствие для CARPLACES
-
поскольку в формате ГАР все данные разделены по папкам регионов, то можно исключить обработку файлов для неиспользуемых регионов
# config/packages/liquetsoft_fias.yaml liquetsoft_fias: files_filter: - "#^.+/extracted/30/AS_.+$#" # разрешает все данные для региона - "#^.+/extracted/AS_.+$#" # разрешает общие словари # все остальные файлы будут проигнорированы
All versions of fias-symfony with dependencies
liquetsoft/fias-component Version ^14.0
symfony/uid Version ^5.0|^6.0|^7.0
symfony/framework-bundle Version ^5.0|^6.0|^7.0
symfony/http-client Version ^5.0|^6.0|^7.0
doctrine/doctrine-bundle Version ^2.0|^3.0
doctrine/orm Version ^2.6|^3.0